Python中映射是什么
这篇文章给大家分享的是有关Python中映射是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
获取成员: getattr
classFoo:def__init__(self,name,age):self.name=nameself.age=ageobj=Foo('klvchen',18)inp=input('>>>')v=getattr(obj,inp)print(v)
运行结果:
>>>nameklvchen
classFoo:def__init__(self,name,age):self.name=nameself.age=agedefshow(self):return"%s-%s"%(self.name,self.age)obj=Foo('klvchen',18)func=getattr(obj,'show')print(func)res=func()print(res)
运行结果:
<boundmethodFoo.showof<__main__.Fooobjectat0x00000234F6942588>>klvchen-18
检查是否含有成员: hasattr
classFoo:def__init__(self,name,age):self.name=nameself.age=agedefshow(self):return"%s-%s"%(self.name,self.age)obj=Foo('klvchen',18)print(hasattr(obj,'name1'))
运行结果:
False
设置成员: setattr
classFoo:def__init__(self,name,age):self.name=nameself.age=agedefshow(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
classFoo:def__init__(self,name,age):self.name=nameself.age=agedefshow(self):return"%s-%s"%(self.name,self.age)obj=Foo('klvchen',18)print(obj.name)delattr(obj,'name')print(obj.name)
运行结果:
klvchenAttributeError:'Foo'objecthasnoattribute'name'
通过字符串的形式操作对象中的成员
classFoo:stat='666'def__init__(self,name,age):self.name=nameself.age=ageres=getattr(Foo,'stat')print(res)
运行结果:
666
创建两个文件,s1.py 和 s2.py
s2.py 内容如下:
NAME='klvchen'deffunc():return'func'
s1.py 内容如下:
imports2res1=getattr(s2,'NAME')print(res1)res2=getattr(s2,'func')result=res2()print(result)
运行 s1.py 文件:
klvchenfunc
创建两个文件,s1.py 和 s2.py
s2.py 内容如下:
NAME='klvchen'deffunc():return'cwe'classFoo:def__init__(self):self.name=666
s1.py 内容如下:
imports2res1=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 文件,运行结果:
klvchencwe<class's2.Foo'><s2.Fooobjectat0x000001CFCDBB2438>666
创建两个文件,s1.py 和 s2.py
s2.py 内容如下:
deff1():return'首页'deff2():return'新闻'deff3():return'精华'
s1.py 内容如下:
imports2inp=input('请输入要查看的URL:')ifhasattr(s2,inp):func=getattr(s2,inp)result=func()print(result)else:print('404')
运行 s1.py 文件,运行结果:
请输入要查看的URL:f1首页
感谢各位的阅读!关于Python中映射是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。