国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > 一文读懂Python中的映射

一文读懂Python中的映射

头像

爱喝马黛茶的安东尼

2019-07-06 09:48:143104浏览 · 0收藏 · 0评论

python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。

获取成员: getattr

class Foo:
    def __init__(self, name, age):
        self.name = name
        self.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 = name
        self.age = age
    def 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 = name
        self.age = age
    def 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 = name
        self.age = age
    def 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

相关推荐:《Python视频教程

删除成员: delattr

class Foo:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def 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 = '666'
    def __init__(self, name, age):
        self.name = name
        self.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
首页
关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

女性私处长得不漂亮的原因| 妈妈俱乐部1-34节小说| 宅男影院| 动漫| 妈妈你真棒里面的插曲叫什么| 久产酒精国酒产品| 暴躁少女10-16岁| 朋友的妈妈| 把腿开大点我添添你SB| 9.1国外黄冈B站| 《共享弟夫》动漫在线观看免费 | 一品国精和二品国精的文化意义| 麻豆免费观看A片WWW| 女学生被老师骗到家中| 亚洲人成色777777在线播放| 黄金网站9.1免费入口| 窝窝影院在线观看免费播放电视剧| 《炸裂吧!巨棒》免费阅读漫画| 水蜜桃免费高清电视剧大全| 欲奴性猛交2无删减| 《慈母夜吟》完整版| 美女和男生一起努力生产豆浆| 国外不堪入目的演唱会| 夫妻二人世界免费看第一集 | 我把刘姨俩腿扛在肩上是哪一集的| 学长让我夹跳D上课不能掉| 《太太你想丈夫被开除吧》 | 动漫| 苍井空高清图片| 细川麻里| 两领导在车上吃我的奶| 女性扒开大腿内侧小肚子痒| 伦理H《豪放女大兵》| 日日精进久久为功的下一句是| 人犬兽人在线观看免费完整| 男生将78申请女生的定眼| 《夜班护士》结局| 东北老肥熟口味重的原因分析| 爸爸汆肉的日常| 囚禁PLAY强制灌药玩弄H| 小俊在雪姨身上耕耘小说免费阅读