1. 程式人生 > >python-對象方法、靜態方法、類方法

python-對象方法、靜態方法、類方法

bubuko attr Coding int attribute auto object def 函數

#-*- coding:utf-8 -*-

#本次學習:對象方法、靜態方法、類方法

class SeniorTestingEngineer:
#屬性--只能對象來調用self.salary
work_year=3
salary=15000
#行為 函數

#self對象方法
def coding(self,language,rows):#self(不能缺少)用來標記這個方法是對象方法,這個方法只能對象來調用
print(‘{0}代碼一級棒,一天寫{1}行代碼‘.format(language,rows))
print(‘工作年限是{0},月薪是{1}‘.format(self.work_year,self.salary))#用對象來調用屬性值

@staticmethod#靜態方法:是類中的函數,不需要特意創建對象來調用,當然也可以創建對象調用
def do_mysql(name):
print(‘數據庫一級棒‘)
# print(‘工作年限是{0},月薪是{1}‘.format(self.work_year,self.salary))#靜態方法無法調用屬性值,因為沒有對象,AttributeError: ‘str‘ object has no attribute ‘work_year‘

    @classmethod#類方法
def do_linux(cls):#傳一個類名進來
print(‘linux一級棒‘)
print(‘工作年限是{0},月薪是{1}‘.format(cls.work_year,cls.salary))#類方法必須用類名來調用屬性值

def do_auto_testing(self):
print(‘自動化測試一級棒‘)



#對象方法
#1.對象方法 有 self
#2.對象方法可以通過對象self調用類裏面的任意屬性值
#3.只能由對象來調用

p1=SeniorTestingEngineer()#創建一個對象
p1.coding(‘python‘,500)


#靜態方法
#1.靜態方法 用 @staticmethod裝飾
#2.靜態方法無法調用屬性值,所以不會涉及到類中的方法和屬性的操作
#3.什麽時候用靜態方法:如果一個方法跟類裏面的屬性沒有任何關聯時使用靜態方法
#4.支持對象和類名直接調用

SeniorTestingEngineer.do_mysql(‘‘)#靜態方法,用類名.函數名調用
SeniorTestingEngineer().do_mysql(‘oracle‘)#靜態方法,用對象.函數名調用

#類方法
#1.類方法 用@classmethod裝飾
#2.類方法可以調用類中的屬性,但是必須用類名來調用屬性值
#3.支持對象和類名直接調用
SeniorTestingEngineer.do_linux()#類方法,支持用類名.函數名調用
SeniorTestingEngineer().do_linux()#類方法,支持用對象.函數名調用




技術分享圖片

python-對象方法、靜態方法、類方法