# -*- coding: utf-8 -*- ''' 调用Dog 中choice所存储字符串的方法 hasattr(obj,str) 的作用是判断d这个实例中是否含有choice中所储存字符串的方法 getattr(obj,str) 调用方法(getattr(d, choice) 的作用是获取到方法的内存地址,加上括号调用方法) setattr(obj,str,method) 为instance 添加新的方法/属性 delattr(obj, str) 删除属性 ''' def bulk(self): print("%s is bulk" %self.name) class Dog(object): def __init__(self,name): self.name = name def eat(self): print("%s is eating" %self.name) # def d = Dog("wangcai") choice ="eat" #input(">>:").strip() m2 = 'talk' p = "name" # hasattr 的作用是判断d这个实例中是否含有choice中所储存字符串的方法 print(hasattr(d, choice)) #调用方法(getattr(d, choice) 的作用是获取到方法的内存地址,加上括号调用方法) getattr(d, choice)() #为instance 添加新的方法 setattr(d, m2, bulk) d.talk(d) #删除属性 print(d.name) delattr(d, p) print(d.name)
动态导入:
# -*- coding: utf-8 -*- ''' 已知一个模块,比如 lib.aa (aa中有Test 方法), 但是以字符串的形式给出 , 我们可以通过动态导入的方式将这个模块进行导入 ''' #导入 lib.aa mod = __import__("lib.aa") #调用Test mod.aa.Test() #建议使用下边的这种方式 import importlib lib = importlib.import_module('lib.aa') lib.Test()