旅游网站开发 结束语,wordpress直播网站主题,html空白模板下载,泉州最专业手机网站建设哪家好python中的反射功能是由以下四个内置函数提供#xff1a;hasattr、getattr、setattr、delattr#xff0c;改四个函数分别用于对对象内部执行#xff1a;检查是否含有某成员、获取成员、设置成员、删除成员。
获取成员: getattr class Foo:def __init__(self, name, age):se… python中的反射功能是由以下四个内置函数提供hasattr、getattr、setattr、delattr改四个函数分别用于对对象内部执行检查是否含有某成员、获取成员、设置成员、删除成员。
获取成员: getattr class Foo:def __init__(self, name, age):self.name nameself.age age
obj Foo(klvchen, 18)
inp input()
v getattr(obj, inp)
print(v) 运行结果: name
klvchen class Foo:def __init__(self, name, age):self.name nameself.age agedef show(self):return %s-%s %(self.name, self.age)
obj Foo(klvchen, 18)
func getattr(obj, show)
print(func)
res func()
print(res) 运行结果: bound method Foo.show of __main__.Foo object at 0x00000234F6942588
klvchen-18 检查是否含有成员: hasattr class Foo:def __init__(self, name, age):self.name nameself.age agedef show(self):return %s-%s %(self.name, self.age)
obj Foo(klvchen, 18)
print(hasattr(obj, name1)) 运行结果: False 设置成员: setattr class Foo:def __init__(self, name, age):self.name nameself.age agedef show(self):return %s-%s %(self.name, self.age)
obj Foo(klvchen, 18)
# print(hasattr(obj, name1))
setattr(obj, key, value)
print(obj.key) 运行结果: value删除成员: delattr class Foo:def __init__(self, name, age):self.name nameself.age agedef show(self):return %s-%s %(self.name, self.age)
obj Foo(klvchen, 18)
print(obj.name)
delattr(obj, name)
print(obj.name) 运行结果: klvchen
AttributeError: Foo object has no attribute name 通过字符串的形式操作对象中的成员 class Foo:stat 666def __init__(self, name, age):self.name nameself.age age
res getattr(Foo, stat)
print(res) 运行结果: 666 创建两个文件s1.py 和 s2.py
s2.py 内容如下: NAME klvchen
def func():return func s1.py 内容如下: import s2
res1 getattr(s2, NAME)
print(res1)
res2 getattr(s2, func)
result res2()
print(result) 运行 s1.py 文件: klvchen
func 创建两个文件s1.py 和 s2.py
s2.py 内容如下: NAME klvchen
def func():return cwe
class Foo:def __init__(self):self.name 666 s1.py 内容如下: import s2
res1 getattr(s2, NAME)
print(res1)
res2 getattr(s2, func)
result res2()
print(result)
cls getattr(s2, Foo)
print(cls)
obj cls()
print(obj)
print(obj.name) 运行 s1.py 文件运行结果 klvchen
cwe
class s2.Foo
s2.Foo object at 0x000001CFCDBB2438
666 创建两个文件s1.py 和 s2.py
s2.py 内容如下: def f1():return 首页
def f2():return 新闻
def f3():return 精华 s1.py 内容如下: import s2
inp input(请输入要查看的URL: )
if hasattr(s2, inp):func getattr(s2, inp)result func()print(result)
else:print(404) 运行 s1.py 文件运行结果 请输入要查看的URL: f1
首页