1. 程式人生 > >反射、getattr

反射、getattr

log gpo pri 裏的 ice setattr getattr ini 根據

#coding=utf-8
class Dog(object):

    def __init__(self,name):
        self.name = name

    def eat(self):
        print ‘1234‘

def talk(self):
    print ‘678678‘
d = Dog(‘xiaobai‘)
#choice = raw_input(‘input:‘).strip()
#print (hasattr(d,choice))   #判斷一個對象裏是否有對應的字符串的方法映射
#getattr(d,choice)()          #根據字符串去獲取對象裏的對應的方法的內存地址
#setattr(d,choice,talk)        #給指定對象加一個方法  d.choice=talk
#d.talk(d)

#setattr(d,choice,22)             #給指定對象加一個實例變量
#print (getattr(d,choice))
#i = getattr(d,‘eat‘)
# print (hasattr(d,‘name‘))
# delattr(d,‘name‘)              #刪除類變量
# d.name
i = ‘eat1‘
if hasattr(d,i):
    getattr(d,i)()
else :
    setattr(d,i,talk)
    func = getattr(d,i)
    func(d)

反射、getattr