您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何在Python中使用設計類變量與成員變量,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
類變量與成員變量
在類中聲明的變量我們稱之為類變量[靜態成員變量],
在init()
函數中聲明的變量并且綁定在實例上的變量我們稱之為成員變量。
類變量直接可以通過類名來調用。
1、若類變量與成員同時存在并且同名
使用對象來調用的時候,獲取的結果是成員變量的值,
使用類名來調用,獲取的是類變量的值。
2、若類變量存在,成員變量不存在,
使用對象來調用的時候,它首先尋找成員變量,
如果成員變量不存在。則去尋找類變量。
3、若類變量不存在,成員變量存在:
使用類名來調用,則會報錯
總結:
類變量通過類名或者對象來調用都不會報錯,但是成員變量只能通過對象來調用。
通過對象來修改類屬性的時候,只能作用到對象自己本身,作用不到類,
若是通過類名來修改類屬性,則只對類變量的值進行修改。
class Person(object): # 類變量 name = "haha" age = "19" height = 170 def __init__(self,name,age,weight): # 成員變量 self.name = name self.age = age self.weight = weight def sayHeight(self): print(self.height) per = Person("xiaoming",19,50) print(per.name) print(Person.name) # print(Person.weight) per.height = 190 print(per.height) print(Person.height) print('*********') Person.height = 200 print(Person.height) print(per.height) per.sayHeight()
輸出:
xiaoming
haha
190
170
*********
200
190
190
類方法與成員方法
類方法,成員方法
類方法:使用類名來調用的方法
成員方法:使用對象來調用的方法
若一個方法定義在類中,但是沒有參數[一般默認self],此時我們只能通過類名來調用
若我們需要使用到一個類的對象,首先要實例化。
class Person(object): def __init__(self,name,age): self.name = name self.age = age def say(self): print("I am %s, I am %d year old"%(self.name,self.age)) def sayHello(): print('hello I am class function') per = Person("xiaoming",19) per.say() Person.sayHello()
輸出:
I am xiaoming, I am 19 year old
hello I am class function
類方法與靜態方法
靜態方法:
當調用此方法時,不會將類的實例傳遞給它。
在類中定義的函數。
無需實例化類,就可以調用。它的定義在繼承中,是不可變的。
類方法:
當調用此方法時,將函數所屬的類作為第一個參數傳遞。
class A(object): def foo(self, x): print("executing foo(%s, %s)" % (self, x)) @classmethod def class_foo(cls, x): print("executing class_foo(%s, %s)" % (cls, x)) @staticmethod def static_foo(x): print("executing static_foo(%s)" % x) a = A() # 調用foo函數,參數傳入1 a.foo(1) # 調用class_foo,參數傳入1 A.class_foo(1) # 調用static_foo,參數傳入1 A.static_foo(1) a.static_foo(1):
輸出:
executing foo(<__main__.A object at 0x0000024F126489B0>, 1)
executing class_foo(<class '__main__.A'>, 1)
executing static_foo(1)
executing static_foo(1)
下劃線
下劃線定義特殊的方法,一般情況下是系統定義名字,
如:
__init()__
、__del()__
前雙下劃線(age):表示私有類型的變量(privated),只能在本類中進行訪問,外界不能直接訪問。如__age.
單下劃線(_age):以單下劃線開頭的表示保護類型變量(protected),
保護類型的變量只允許本身以及子類訪問,不能用于from module import *
[使用單下劃線開頭的時候,雖然變量能夠直接被訪問,但是請把變量視為一個保護類型的變量,盡量不要去訪問。
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。
以上就是如何在Python中使用設計類變量與成員變量,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。