14.11类的成员修饰符
生活随笔
收集整理的這篇文章主要介紹了
14.11类的成员修饰符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
成員修飾符
類的所有成員分為:字段,方法
公有成員,在任何地方都能訪問
私有成員,只有在類的內部才能訪問
私有成員和公有成員的定義不同:私有成員命名時,前兩個字符是下劃線。(特殊成員除外,例如:init、call等)
私有成員和公有成員的訪問限制不同:
靜態字段:
公有靜態字段:類可以訪問,類內部可以訪問;派生類中可以訪問
私有靜態字段:僅類內部可以訪問
普通字段:
公有普通字段:對象可以訪問;類內部可以訪問;派生類中可以訪問
私有普通字段:僅類內部可以訪問
方法、屬性的訪問與上述方式相似,即,私有成員只能在類內部使用。
PS:私有成員若非要訪問的話,可以通過 對象._類__屬性名 來訪問。
私有普通字段
# -*-coding:utf-8 -*- __author__ = 'xiaojiaxin' __file_name__ = '成員修飾符'class foo:def __init__(self,name,age,__age):self.name=nameself.age=ageself._age=age #私有,外部無法直接訪問def show(self):return self._age #間接訪問私有字段obj=foo("jiaxin",10,1) print(obj.name) print(obj.age) print(obj._age) print(obj.show())私有靜態字段
class Hoo:__v="123"def __init__(self):passdef show(self):return Hoo.__v@staticmethoddef staticmd():return Hoo.__v#print(Hoo.__v) #靜態私有字段不能被外部訪問obj2=Hoo() print(obj2.show()) #靜態私有字段可以間接被外部訪問 # 123obi3=Hoo.staticmd() print(obi3) # 123私有普通方法
class qoo:def __f1(self):return "f1"def f2(self):r=self.__f1()return r obj4=qoo() print(obj4.f2()) # f1派生類不能繼承基類的私有字段
class F:def __init__(self):self.ge="dad1"self.__gene="dad"class S(F):def __init__(self,name):self.name="son"self.__age=10super(S,self).__init__()def show(self):print(self.name)print(self.__age)print(self.ge)#print(self.__gene) #無法訪問父類的私有字段,只能通過繼承公有才行s=S("jiaxin") s.show()轉載于:https://blog.51cto.com/10777193/2102954
總結
以上是生活随笔為你收集整理的14.11类的成员修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webstorm中自动插入的代码和ts冲
- 下一篇: 一个简单的MVP模式案例