3 回答

TA貢獻1856條經(jīng)驗 獲得超5個贊
__something
class Test: a = None b = None def __init__(self, a): print self.a self.a = a self._x = 123 self.__y = 123 b = 'meow'
a
b
Test.a
Test.b
__init__
print self.a
找不到實例變量,因此返回類變量 self.a = a
*一個新的實例變量 a
是被創(chuàng)造出來的。這樣就隱藏了類變量 self.a
現(xiàn)在將引用實例變量;要訪問類變量,現(xiàn)在必須使用 Test.a
分配給 self._x
創(chuàng)建一個新的實例變量。它被認為“不是公共API的一部分”(也是受保護的),但從技術(shù)上講,它沒有不同的行為。 分配給 self.__y
創(chuàng)建一個名為 _Test__y
,也就是說,它的名稱被損壞了,所以除非您使用損壞的名稱,否則不能從類外部訪問它。這可以用于“私有”變量。 分配給 b
創(chuàng)建一個局部變量。它在任何地方都是不可用的,但是 __init__
函數(shù),因為它沒有保存在實例、類或全局范圍中。

TA貢獻1794條經(jīng)驗 獲得超7個贊
class test:<br>
def __init__(self, a):
self.__elements = a<br>
def change_a(self): self.__elements = 5
t = test(5)
這將按對象訪問._classname_Privatevaribalename
print(t._test__elements)
這將打印a‘的更改值。

TA貢獻1818條經(jīng)驗 獲得超8個贊
Class.x = 5
_foo
__foo
_classname__foo
.
添加回答
舉報