類屬性:
類屬性,直接在類中定義的屬性是類屬性,類屬性可以通過類或類的例項訪問到,但是類屬性只能通過類物件來修改,無法通過例項物件修改
例項屬性:
例項屬性,通過例項物件新增的屬性屬於例項屬性,例項屬性只能通過例項物件來訪問和修改,類物件無法訪問修改
類方法:
例項方法
靜態方法
# 定義乙個類
class a(object):
# 類屬性,直接在類中定義的屬性是類屬性
# 類屬性可以通過類或類的例項訪問到
# 但是類屬性只能通過類物件來修改,無法通過例項物件修改
count = 0
def __init__(self):
# 例項屬性,通過例項物件新增的屬性屬於例項屬性
# 例項屬性只能通過例項物件來訪問和修改,類物件無法訪問修改
self.name = '孫悟空'
# 例項方法
# 在類中定義,以self為第乙個引數的方法都是例項方法
# 例項方法在呼叫時,python會將呼叫物件作為self傳入
# 例項方法可以通過例項和類去呼叫
# 當通過例項呼叫時,會自動將當前呼叫物件作為self傳入
# 當通過類呼叫時,不會自動傳遞self,此時我們必須手動傳遞self
def test(self):
print('這是test方法~~~ ' , self)
# 類方法
# 在類內部使用 @classmethod 來修飾的方法屬於類方法
# 類方法的第乙個引數是cls,也會被自動傳遞,cls就是當前的類物件
# 類方法和例項方法的區別,例項方法的第乙個引數是self,而類方法的第乙個引數是cls
# 類方法可以通過類去呼叫,也可以通過例項呼叫,沒有區別
@classmethod
def test_2(cls):
print('這是test_2方法,他是乙個類方法~~~ ',cls)
print(cls.count)
# 靜態方法
# 在類中使用 @staticmethod 來修飾的方法屬於靜態方法
# 靜態方法不需要指定任何的預設引數,靜態方法可以通過類和例項去呼叫
# 靜態方法,基本上是乙個和當前類無關的方法,它只是乙個儲存到當前類中的函式
# 靜態方法一般都是一些工具方法,和當前類無關
@staticmethod
def test_3():
print('test_3執行了~~~')
a = a()
# 例項屬性,通過例項物件新增的屬性屬於例項屬性
# a.count = 10
# a.count = 100
# print('a ,',a.count)
# print('a ,',a.count)
# print('a ,',a.name)
# print('a ,',a.name)
# a.test() 等價於 a.test(a)
# a.test_2() 等價於 a.test_2()
a.test_3()
a.test_3()
python之方法和屬性
構造方法 init self class bird def init self self.hunger true def eat self if self.hunger print aaaah.self.hunger false else print no.thanks b bird print b...
Python 類屬性和方法
import types class dog object slots name color info 定義 slots 該類中只允許 類物件 動態增加 name,color,info,body len 屬性或方法 都是例項屬性或方法 slots 對類的 動態新增屬性和方法 沒有限制,而 類物件 不...
python 私有屬性和方法
class women object def init self,name,age self.name name 私有屬性就是 age,私有方法就是def secret self.age age def secret self print s 的年齡是 d self.name,self.age xi...