Rumah  >  Artikel  >  pembangunan bahagian belakang  >  python中单下划线和双下划线有什么区别

python中单下划线和双下划线有什么区别

silencement
silencementasal
2019-05-23 18:11:387960semak imbas

python中单下划线和双下划线的区别是:单下划线用来告诉别的程序这个属性或方法是私有的;双下划线用来定义私有类的实例、类变量、全局变量、实例变量等。

python中单下划线和双下划线有什么区别

单下划线

在一个类中的方法或属性用单下划线开头就是告诉别的程序这个属性或方法是私有的。然而对于这个名字来说并没有什么特别的。

(推荐教程:python视频教程

双下划线

任何__spam形式(至少两个下划线开头,至多一个下划线结尾)都是代替_classname__spam,其中classname是当前类的名字。This mangling is done without regard to the syntactic position of the identifier。所以它能用来定义私有类的实例和类变量,方法,在全局中的变量,甚至是实例中的变量。可以区别不同类的实例。

771c060bb7a6ebfd17c60e580a1a566.png

总结:

__foo__:一种约定,Python内部的名字,用来区别其他用户自定义的命名,以防冲突。

_foo:一种约定,用来指定变量私有。程序员用来指定私有变量的一种方式。

__foo:这个有真正的意义:解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名。

在Python中没有其他形式的下划线了。

这种约定方式和类,变量,全局变量等没有区别。

Atas ialah kandungan terperinci python中单下划线和双下划线有什么区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn