先看兩個類的方法:
>>> class nc(): def __init__(self): self.name ='tester' #name變量加self >>> class mc(): def __init__(self): name = 'tesster' #name變量不加self >>> nc = nc() #實例化nc() >>> nc.name #通過.操作符可以調用該方法的屬性name,說明加self后的name是該方法的屬性 attribute。 'tester' >>> mc = mc() #實例化mc() >>> mc.name #嘗試通過.操作符調用變量name,明顯提示錯誤,說明不加self的變量不是該方法的屬性,它是方法的局部變量。 Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> mc.name AttributeError: 'mc' object has no attribute 'name'
python中類方法的屬性需要加self,也就是self.xxx,這個是方法的屬性!
類方法的變量不加self,也就是xxx,這個是方法的局部變量,不能被調用,只能在該方法內部使用!
在類中,self只能在方法中使用表示該方法的實例屬性,也就是每個實例可以設置不同的值而不會相互影響;在方法下不使用self表示是該方法的局部變量,只能在該方法內使用。
self.xxx是全局的,xxx是局部的對於該方法有效。
---------------------
原文:https://blog.csdn.net/jojoy_tester/article/details/54016309