getattr # 根据字符串的形式,去对象中找成员。
hasattr # 根据字符串的形式,去判断对象中是否有成员。
setattr # 根据字符串的形式,动态的设置一个成员(内存)
delattr # 根据字符串的形式,动态的删除一个成员(内存)
函数中使用
from types import FunctionType
import handler
while True:
print("""
系统支持的函数有:
1. f1
2. f2
3. f3
4. f4
5. f5
""")
val = input("请输入要执行的函数:") # val = "f1"
# 错误
# handler.val()
if hasattr(handler,val):
func_or_val = getattr(handler,val) # 根据字符串为参数,去模块中寻找与之同名的成员。
if isinstance(func_or_val,FunctionType):
func_or_val()
else:
print(func_or_val)
else:
print('handler中不存在输入的属性名'
#handler.py
f0 = 9
def f1():
print('F1')
def f2():
print('F2')
def f3():
print('F3')
def f4():
print('F4')
def f5():
print('F5')
面向对象中使用
class Account:
func_list = ["login", "logout", 'register']
def login(self):
"""
登陆
:return:
"""
print("登录")
def logout(self):
'''
注销
:return:
'''
print("注销")
def register(self):
'''
注册
:return:
'''
print("注册")
def run(self):
print('''
请输入要执行的功能:
1.登陆
2.注销
3.注册
''')
choice = int(input("请你输入要执行的序号:"))
func_name = Account.func_list[choice - 1]
func = getattr(self, func_name)
func()
obj = Account()
obj.run()