Python-16-常用的BIF

Python-16-常用的BIF什么是BIFBIF即Bulit Internal Function,意为内置方法。判断一个对象有无某个属性hasattr()全名为:has at

大家好,欢迎来到IT知识分享网。

Python-16-常用的BIF

什么是BIF

BIF即Bulit Internal Function,意为内置方法。

判断一个对象有无某个属性

hasattr()

全名为:has attribute ? 有某个属性吗?

例:

class Person(object): def __init__(self): self.home = 'earth' def sayHi(self): print('Hi,baby!') chinese = Person() print(hasattr(chinese,'home')) print(hasattr(chinese,'sayHi')) print(hasattr(chinese,'name'))

输出:

➜ test git:(master) ✗ python3 test.py True True False

home是chinese实例的一个变量属性,在__init__初始化时定义,sayHi是chinese实例的一个方法属性。

获取一个对象的属性

getattr()

全名为:get attribute,获取属性。

例:

class Person(object): def __init__(self): self.home = 'earth' def sayHi(self): print('Hi,baby!') chinese = Person() my_home = getattr(chinese,'home')   # 获取对象的变量属性 my_say = getattr(chinese,'sayHi')   # 获取对象的方法属性 my_age = getattr(chinese,'age','您所查找的属性不存在') # 设置默认返回值 print(my_home,my_say,my_age,sep='\n') my_name = getattr(chinese,'name')   # 获取不存在的属性,会报AttributeError的错误 print(my_name)

输出:

➜ test git:(master) ✗ python3 test.py earth <bound method Person.sayHi of <__main__.Person object at 0x7f123fefdf28>> 您所查找的属性不存在 Traceback (most recent call last): File "test.py", line 59, in <module> my_name = getattr(chinese,'name') AttributeError: 'Person' object has no attribute 'name'

获取的方法属性还可以拿来执行:

# 执行 my_say() # 输出 Hi,baby!

设置对象的属性

setattr()

全名为:set attribute,设置属性。

例:

class Person(object): def __init__(self): self.home = 'earth' def sayHi(self): print('Hi,baby!') chinese = Person() my_home = setattr(chinese,'home','china') print(chinese.home)

输出:

➜ test git:(master) ✗ python3 test.py china

点击↓↓↓

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/75102.html

(0)
上一篇 2024-07-19 22:00
下一篇 2024-07-20 22:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信