您好,登錄后才能下訂單哦!
當(dāng)一個(gè)類(lèi)中,帶有多個(gè)方法時(shí),要求用戶(hù)輸入方法名,并調(diào)用相應(yīng)函數(shù),此時(shí)就可使用類(lèi)的反射方法,來(lái)快速調(diào)用相應(yīng)函數(shù),而不再需要使用多個(gè)IF判斷條件語(yǔ)句。
#Author Kang
class Dog(object):
def __init__(self,name):
self.Name = name
def eat(self):
print("%s is eatting...."%(self.Name))
def talk(self):
print("%s is talking...."%self.Name)
def sleep(self):
print("%s is sleep...."%self.Name)
def walk(self):
print("%s is walking..."%self.Name)
def alert(self):
print("此方法不存在")
d1 = Dog("二哈")
choice = input("請(qǐng)輸入你想要的:>>")
if hasattr(Dog,choice): #判斷Dog類(lèi)是否有此方法
func = getattr(d1,choice) #調(diào)用該方法(返回值為函數(shù)地址)
func() #運(yùn)行該函數(shù),并可傳值
else:
print("你輸入的方法有誤?。。?!")
結(jié)果:
請(qǐng)輸入你想要的:>>eat
二哈 is eatting....
請(qǐng)輸入你想要的:>>eat
二哈 is eatting....
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。