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

首頁 > 編程 > Python > 正文

基于python3 類的屬性、方法、封裝、繼承實(shí)例講解

2020-02-16 10:16:04
字體:
供稿:網(wǎng)友

Python 類

Python中的類提供了面向?qū)ο缶幊痰乃谢竟δ埽侯惖睦^承機(jī)制允許多個(gè)基類,派生類可以覆蓋基類中的任何方法,方法中可以調(diào)用基類中的同名方法。

對(duì)象可以包含任意數(shù)量和類型的數(shù)據(jù)。

python類與c++類相似,提供了類的封裝,繼承、多繼承,構(gòu)造函數(shù)、析構(gòu)函數(shù)。

在python3中,所有類最頂層父類都是object類,與java類似,如果定義類的時(shí)候沒有寫出父類,則object類就是其直接父類。

類定義

類定義語法格式如下:

class ClassName:<statement-1>...<statement-N>

類對(duì)象:創(chuàng)建一個(gè)類之后,可以通過類名訪問、改變其屬性、方法

實(shí)例對(duì)象:類實(shí)例化后,可以使用其屬性,可以動(dòng)態(tài)的為實(shí)例對(duì)象添加屬性(類似javascript)而不影響類對(duì)象。

類的屬性

可以使用點(diǎn)(.)來訪問對(duì)象的屬性

也可以使用以下函數(shù)的方式來訪問屬性:

getattr(obj, name[, default]) : 訪問對(duì)象的屬性

hasattr(obj,name) : 檢查是否存在一個(gè)屬性

setattr(obj,name,value) : 設(shè)置一個(gè)屬性。如果屬性不存在,會(huì)創(chuàng)建一個(gè)新屬性

delattr(obj, name) : 刪除屬性

Python內(nèi)置類屬性

__dict__ : 類的屬性(包含一個(gè)字典,由類的數(shù)據(jù)屬性組成)

__doc__ :類的文檔字符串

__name__: 類名

__module__: 類定義所在的模塊(類的全名是'__main__.className',如果類位于一個(gè)導(dǎo)入模塊mymod中,那么className.__module__ 等于 mymod)

__bases__ : 類的所有父類構(gòu)成元素(包含了以個(gè)由所有父類組成的元組)

class Person:  "Person類"  def __init__(self, name, age, gender):    print('進(jìn)入Person的初始化')    self.name = name    self.age = age    self.gender = gender    print('離開Person的初始化')  def getName(self):    print(self.name)p = Person('ice', 18, '男')print(p.name) # iceprint(p.age) # 18print(p.gender) # 男print(hasattr(p, 'weight')) # False# 為p添加weight屬性p.weight = '70kg'print(hasattr(p, 'weight')) # Trueprint(getattr(p, 'name')) # iceprint(p.__dict__) # {'age': 18, 'gender': '男', 'name': 'ice'}print(Person.__name__) # Personprint(Person.__doc__) # Person類print(Person.__dict__) # {'__doc__': 'Person類', '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__init__': <function Person.__init__ at 0x000000000284E950>, 'getName': <function Person.getName at 0x000000000284EA60>, '__dict__': <attribute '__dict__' of 'Person' objects>, '__module__': '__main__'}print(Person.__mro__) # (<class '__main__.Person'>, <class 'object'>)print(Person.__bases__) # (<class 'object'>,)print(Person.__module__) # __main__

類的方法

在類地內(nèi)部,使用def關(guān)鍵字可以為類定義一個(gè)方法,與一般函數(shù)定義不同,類方法必須包含參數(shù)self,且為第一個(gè)參數(shù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 佛山市| 丰台区| 宜章县| 松江区| 天祝| 万山特区| 高邮市| 建始县| 孝昌县| 邯郸市| 临湘市| 云林县| 公主岭市| 克什克腾旗| 枣强县| 柯坪县| 威远县| 颍上县| 敦煌市| 四平市| 临城县| 曲阜市| 江阴市| 贵港市| 定陶县| 比如县| 灯塔市| 安远县| 德清县| 东丽区| 日喀则市| 长沙市| 双辽市| 临夏县| 永泰县| 彭阳县| 尉氏县| 钟祥市| 斗六市| 来安县| 雅江县|