标签:函数 一个 串操作 返回 字符串 存在 delattr input nbsp
#####与类相关的魔术属性#####
# __doc__ 获取对象或类的内部文档 用法 对象/类.__doc__
# __name__ 获取类名函数名
# __class__ 获取当前对象所属的类
# __bases__ 获取一个类直接继承的所有父类,返回元组
######类中的反射#####
# hasattr() 检测对象/类是否有指定的成员 hasattr(obj,"eat") 记法(has attribute)
# getattr() 获取对象/类成员的值 获取属性就返回值,获取方法就返回的是函数,这个函数可以直接调用
"""res = getattr(obj,"eye") print(res)通过对象把属性返回出来"""
"""func = getattr(obj,"eat") 调用func(); func = getattr(Children,"eat")调用func(1)"""
# 通过对象把方法反射出来,是绑定方法 #绑定方法调用不用传参,通过类把方法反射出来,是普通方法 #普通方法需要传参
# res = getattr(Children,"abc","对不起,没有该成员")# 可以为getattr设置默认值,如果找不到该成员,在第三个参数上可以设置相应的返回值
# setattr() 设置对象/类成员的值
# 设置对象成员属性setattr(obj,"hair","天蓝色的"),设置类的成员方法setattr(Children,"age",func) 其中func自己定义
# 4.delattr() 删除对象/类成员的值
##### (2)模块的反射#####
"""import sys"""
# sys.modules 返回一个系统字典,字典的键是加载的所有模块print(sys.modules["__main__"])找到此文件的模块(类,方法和属性)
import sys
# sys.modules 返回一个系统字典,字典的键是加载的所有模块
print(sys.modules)
mymodule = sys.modules["__main__"]
print(mymodule)
def func1():
print(1)
def func2():
print(2)
def func3():
print(3)
def func4():
print(4)
# 通过字符串操作模块中的成员
while True:
func = input("请用户输入您要操作的函数")
if hasattr(mymodule,func):
# 反射真实的函数
fuc = getattr(mymodule,func)
fuc()
else:
print("这个函数不存在")
标签:函数 一个 串操作 返回 字符串 存在 delattr input nbsp
原文地址:https://www.cnblogs.com/banbosuiyue/p/11832480.html