python-反射

623 ワード

プログラム実行時のステータス、プロパティ、メソッドを文字列マッピングまたは変更します.4つの方法があります.
getattr(object, name, default = None)    # 
hasattr(object, name)   #   object       name      。
setattr(x, y, v)
delattr(x, y)

1)hasattr:オブジェクトに対応する文字列があるかどうかを判断するメソッドマッピング.2)getattr:
例:
class Dog(object):
    def __init__(self, name):
        self.name = name
    def eat(self):
        print("%s is eating..." %self.name)


d = Dog('liuhuayang')
choice = input(">>:").strip()



if hasattr(d, choice):
    getattr(d, choice)

3)set(x, y, v)
文字列の形式でクラスにアセンブリ方法を適用します.