当前位置:  开发笔记 > 编程语言 > 正文

类(Python)和结构(C)之间的区别

如何解决《类(Python)和结构(C)之间的区别》经验,为你挑选了4个好方法。

我是python的新手.我研究过C,我注意到C结构(struct)似乎与python中的"class"具有相同的任务.那么,从概念上讲,差异是什么呢?



1> George V. Re..:

结构封装了数据.

类封装了行为和数据.



2> Randolpho..:

除了它们如何实现之间存在许多技术差异之外,它们的用途大致相同:数据组织.

最大的区别在于Python(以及其他面向对象的语言,如C++,Java或C#),一个类也可以有与之关联的函数,只在类的实例上运行,而在C中,一个函数,对结构进行操作必须以某种方式接受结构作为参数,通常是通过指针.

我不会深入研究两者之间的技术差异,因为它们相当重要,但我建议您研究面向对象编程的概念.



3> Craig S..:

在不将页面和页面放入细节的情况下,将C结构视为组织数据的方式,而Python(或C++或Objective-C)"类"不仅可以组织数据,还可以组织操作对于那些数据.例如,Python"类"可以从其他对象继承,为您提供与之关联的数据的交互器(或者您可以在类中编写自己的交互器).还有更多话要说,我敢肯定,但这很快进入"什么是OOP",远远超出了这个线程的范围.



4> dan-gph..:

没有提到的一件事是C结构是值类型,而Python类是引用类型.

例如,请考虑以下声明:

var1 = var2

如果var1和var2是C结构,那么该语句会将var2的内容复制到var1中.这是按价值复制的.

但是,如果var1和var2是Python对象,那么该语句将使var1引用var2引用的对象.(它们就像是C中结构的指针.)这是通过引用副本.

将参数传递给函数时会发生同样的事情(因为它们必须被复制才能进入函数).

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有