国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 類的特殊成員解析

2020-02-15 21:56:05
字體:
來源:轉載
供稿:網(wǎng)友

類的成員有兩種形式

公有成員,在任何地方都能訪問

私有成員,只有在類的內部才能方法,私有成員命名時,前兩個字符是下劃線。

class Foo:  def __init__(self, name, age):    self.name = name    self.__age = age  def show(self):      # 間接方法私有字段    return self.__age  obj = Foo('klvchen', 25)print(obj.name)res = obj.show()print(res)

運行結果:

klvchen
25

公有靜態(tài)字段:類可以訪問;類內部可以訪問;派生類中可以訪問

私有靜態(tài)字段:僅類內部可以訪問;

class Foo:  __v = '666'     # 私有靜態(tài)字段  def __init__(self):    pass  def show(self):    return Foo.__vobj = Foo()res = obj.show()print(res)

運行結果:

666

class Foo:  __v = '666'  def __init__(self):    pass  def show(self):    return Foo.__v  @staticmethod  def stat():    return Foo.__vres = Foo.stat()print(res)

運行結果:

666

無法從父類繼承私有字段

class F:  def __init__(self):    self.ge = 123    self.__gene = 456   #私有字段class S(F):  def __init__(self, name):    self.name = name    self.__age = 18    super(S, self).__init__()  def show(self):    print(self.name)    print(self.__age)    print(self.ge)    print(self.__gene)s = S('klvchen')s.show()

運行結果:

klvchen
18
123
AttributeError: 'S' object has no attribute '_S__gene'

類的特殊成員

int(對象),會自動執(zhí)行對象中的__int__方法,并將返回賦值給 int 對象,同理 str(對象),會自動執(zhí)行__str__方法,并返回賦值給 str 對象。

class Foo:  def __init__(self):    pass  def __int__(self):    return 666  def __str__(self):    return 'hello world'obj = Foo()print(obj, type(obj))res = int(obj)print(res)res1 = str(obj)print(res1)

運行結果:

<__main__.Foo object at 0x0000022BBE9DA978> <class '__main__.Foo'>
666
hello world

print(對象),str(對象),都會自動執(zhí)行對象中的__str__方法,并返回

class Foo:  def __init__(self, n, a):    self.name = n    self.age = a  def __str__(self):    return '%s-%d' %(self.name, self.age)obj = Foo('klvchen', 28)print(obj)

運行結果:

klvchen-28

兩個對象相加時,自動執(zhí)行第一對象的__add__方法,并且將第二個對象當參數(shù)傳遞進去

class Foo:  def __init__(self, name, age):    self.name = name    self.age = age  def __add__(self, other):    return self.age + other.ageobj1 = Foo('klv1', 23)obj2 = Foo('klv2', 24)res = obj1 + obj2print(res, type(res))            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 荆州市| 奉化市| 晴隆县| 高唐县| 阜宁县| 县级市| 德钦县| 崇礼县| 台北市| 望谟县| 来凤县| 奈曼旗| 凤庆县| 突泉县| 桃源县| 临沭县| 新乐市| 阿合奇县| 丹巴县| 新巴尔虎右旗| 芦山县| 柳河县| 常熟市| 桃园县| 万山特区| 花莲市| 宝坻区| 陵川县| 乌鲁木齐市| 阿瓦提县| 贡嘎县| 聂拉木县| 金沙县| 绥德县| 镇江市| 虎林市| 柳州市| 沈阳市| 长子县| 兰坪| 宣恩县|