-
首先看一段代码
class Foo(): def __init__(self): print "__init__ method" def public_method(self): print "public_method" def __private_method(self): print "__private_method" def _halfprivate_method(self): print "_halfprivate_method"
-
这里我们定义了一个类Foo,类成员函数有双下划线方法__private_method和单下滑线方法_halfprivate_method,调用public_method和_halfprivate_method结果如下:
f = Foo() f.public_method() f._halfprivate_method() 结果: __init__ method public_method _halfprivate_method
-
显示没有问题。调用__private_method结果如下:
f = Foo() f.__private_method() 结果: Traceback (most recent call last): __init__ method File "C:/Python_Data_Analyse1/python下划线的意义.py", line 19, in <module> f.__private_method() AttributeError: Foo instance has no attribute '__private_method'
-
结果显示Foo的实例化的对象没有属性__private_method,但是如果使用_类__object的方式,就可以访问私有方法了,如下:
f = Foo() f._Foo__private_method()
python类中方法加单下划线、双下划线、前后双下滑线的区别
最新推荐文章于 2023-06-30 08:37:26 发布