python高階 屬性與方法

2021-09-18 01:50:55 字數 1379 閱讀 1728

1.1 類屬性與例項屬性

對比:類屬性不會因例項不同而不同,類屬性之開闢一次記憶體,節省記憶體;

例項屬性因例項不同而不同,每構造乙個例項,都會另開闢乙個記憶體,例項屬性通常需要通過類的構造方法(__init__)初始化;

例項可以呼叫類屬性,類不可以呼叫例項屬性。

"""

類屬性與例項屬性

"""class person():

country = 'china'

def __init__(self, _name, _gender):

self.name = _name

self.gender = _gender

p1 = person('jack', '男')

print(person.country)

print(p1.name)

print(p1.gender)

結果:

結果:

china

jack

1.2 類方法、靜態方法、例項方法

class person():

country = 'china'

def __init__(self, _name, _gender):

self.name = _name

self.gender = _gender

def run(self):

print('這是乙個例項方法')

@classmethod

def play(cls):

print('這是乙個類方法')

@staticmethod

def eat():

print('這是乙個靜態方法')

p1 = person('jack', '男')

# 例項可以呼叫例項方法

p1.run()

# 例項可以呼叫類方法

p1.play()

# 例項可以呼叫靜態方法

p1.eat()

# 類可以呼叫類方法

person.play()

# 類可以呼叫靜態方法

person.eat()

try:

# 類不能呼叫例項方法

person.run()

except exception as e:

print(e)

結果:

這是乙個例項方法

這是乙個類方法

這是乙個靜態方法

這是乙個類方法

這是乙個靜態方法

run() missing 1 required positional argument: 'self'

Python高階 魔法屬性和方法

1.doc 表示類的描述資訊 2.module 和 class 當前操作物件所屬的模組和類 3.init 初始化方法,類建立物件時,自動觸發執行 4.del 物件在記憶體中釋放時,自動觸發執行 5.call 物件後加括號 物件 自動觸發執行 6.dict 類或物件中的所有屬性 7.str 列印物件時...

Python高階 property屬性

1.property屬性 是乙個提高開發者使用者體驗度的屬性,可以將乙個函式改造的像屬性一樣。例 定義的時候像是乙個函式 使用的時候和屬性的方式是以樣的 class foo object property defmoney self return 100 f foo m f.money print ...

Python 私有屬性與內部方法

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 class p...