<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
python的class(類)相當於一個多個函陣列成的家族,如果在這個Myclass大家族裡有一個人叫f,假如這個f具有print天氣的作用,那麼如果有一天我需要這個f來print一下今天的天氣,那麼我必須叫他的全名MyClass.f才可以讓他給我print,即在呼叫他的時候需要帶上他的家族名稱+他的名稱。
MyClass範例:
#Myclass家族,但是這個家族只有一個人f class MyClass: """一個簡單的類範例""" i = 12345 def f(self): return 'hello world' # 範例化類 x = MyClass() # 存取類的屬性和方法 print("MyClass 類的屬性 i 為:", x.i) #家族x + 物品名i print("MyClass 類的方法 f 輸出為:", x.f()) #家族x + 人名f
輸出結果:
__init__()
假如init()也是人,但是他是家族和外界聯絡員,當外界的人想呼叫自己家族的人,就必須要先告訴他,所以只要家族的人被呼叫,那麼init()就會被先執行,然後由他去告訴那個被呼叫的人,執行被呼叫的。
init()範例:
class Complex: def __init__(self, realpart, imagpart): #必須要有一個self引數, self.r = realpart self.i = imagpart x = Complex(3.0, -4.5) print(x.r, x.i) # 輸出結果:3.0 -4.5
輸出結果:
self
在類的內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含引數self, 且為第一個引數,self代表的是類的範例。
範例化範例:
#類定義 class people: #定義基本屬性 name = '' age = 0 #定義私有屬性,私有屬性在類外部無法直接進行存取 #定義構造方法 def __init__(self,n,a): self.name = n self.age = a def speak(self): print("%s 說: 我 %d 歲。" %(self.name,self.age)) # 範例化類 p = people('Python',10,30) p.speak()
輸出結果:
假如有兩個家族,有一個家族A開始沒落了,另一個新興的家族B想繼承A家族的物資和傭人,那麼就可以通過如下的方式實現繼承,在這裡,家族A即是父類別,家族B是子類。在用法上,如果B家族可以任意使用A家族的物品和傭人。
class [子類]([父類別]):
class [子類]([父類別]1, [父類別]2, [父類別]3):
繼承範例:
#類定義 class people: #定義基本屬性 name = '' age = 0 #定義私有屬性,私有屬性在類外部無法直接進行存取 __weight = 0 #定義構造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 說: 我 %d 歲。" %(self.name,self.age)) #單繼承範例 class student(people): #student為子類,people為父類別 grade = '' def __init__(self,n,a,w,g): #呼叫父類別的構函 people.__init__(self,n,a,w) self.grade = g #覆寫父類別的方法 def speak(self): print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade)) s = student('ken',10,60,3) s.speak()
執行結果:
如果你的父類別方法的功能不能滿足你的需求,你可以在子類重寫你父類別的方法。即如果B家族繼承了A家族,但是B家族有個傭人只會掃地,於是A家族給這個人洗腦,讓他啥都不會,然後再教這個傭人洗碗、擦桌子的技能,那麼這個傭人就只會洗碗和擦桌子了。
方法重寫範例:
class Parent: # 定義父類別 def myMethod(self): print('呼叫父類別方法') class Child(Parent): # 定義子類 def myMethod(self): print('呼叫子類方法') c = Child() # 子類範例 c.myMethod() # 子類呼叫重寫方法 super(Child,c).myMethod() #用子類物件呼叫父類別已被覆蓋的方法
輸出結果:
私有屬性範例:
class JustCounter: __secretCount = 0 # 私有變數 publicCount = 0 # 公開變數 def count(self): self.__secretCount += 1 self.publicCount += 1 print(self.__secretCount) counter = JustCounter() counter.count() counter.count() print(counter.publicCount) print(counter.__secretCount) # 報錯,範例不能存取私有變數
輸出結果:
私有方法範例:
class Site: def __init__(self, name, url): self.name = name # public self.__url = url # private def who(self): print('name : ', self.name) print('url : ', self.__url) def __foo(self): # 私有方法 print('這是私有方法') def foo(self): # 公共方法 print('這是公共方法') self.__foo() x = Site('Python', 'www.irvingao.com') x.who() # 正常輸出 x.foo() # 正常輸出 x.__foo() # 報錯
輸出結果:
到此這篇關於python之class類和方法的用法詳解的文章就介紹到這了,更多相關class類和方法的用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45