码迷,mamicode.com
首页 > 其他好文 > 详细

D22_2.1_module

时间:2019-11-11 00:51:59      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:函数   一个   串操作   返回   字符串   存在   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("这个函数不存在")

D22_2.1_module

标签:函数   一个   串操作   返回   字符串   存在   delattr   input   nbsp   

原文地址:https://www.cnblogs.com/banbosuiyue/p/11832480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!