python類和例項化
阿新 • • 發佈:2020-07-29
例項變數和類變數
class Student: # 類的定義體 classroom = '101' # 類變數 address = 'beijing' def __init__(self, name, age): self.name = name self.age = age def print_age(self): print('%s: %s' % (self.name, self.age)) re=Student('小明','25') print(re.name) # 例項變數name print(re.age) # 例項變數age print(Student.classroom) # 通過類名訪問類變數 print(Student('小明','25').address) # re本身沒有classroom例項變數,所以去尋找類變數,它找到了! 輸出結果: 小明 25 101 beijing
例項化方法
class Student: # 類的定義體 classroom = '101' # 類變數 address = 'beijing' def __init__(self, name, age): self.name = name self.age = age def print_age(self): print('%s: %s' % (self.name, self.age)) re=Student('小明','25').print_age() 輸出結果: 小明: 25
靜態方法
靜態方法由類呼叫,無預設引數。將例項方法引數中的self去掉,然後在方法定義上方加上@staticmethod,就成為靜態方法。它屬於類,和例項無關。建議只使用類名.靜態方法的呼叫方式。(雖然也可以使用例項名.靜態方法的方式呼叫)
class Student(object):
@staticmethod
def print_age(name,age):
print('%s: %s' % (name, age))
re=Student.print_age('小明','25')
輸出結果:
小明: 25
類方法
類方法由類呼叫,採用@classmethod裝飾,至少傳入一個cls(代指類本身,類似self)引數。執行類方法時,自動將呼叫該方法的類賦值給cls。建議只使用類名.類方法的呼叫方式。(雖然也可以使用例項名.類方法的方式呼叫)
class Student(object):
@classmethod
def print_age(cls,name,age):
cls.name=name
cls.age=age
print('%s: %s' % (cls.name, cls.age))
re=Student.print_age('小明','25')
輸出結果:
小明: 25