python之hasattr、getattr和setattr函数

hasattr函数使用方法
 1 # hasattr函数使用方法
 2 # hasattr(object,attr)
 3 # 判断一个对象里是否有某个属性或方法,返回布尔值,有为True,否则False
 4 class person():
 5     ‘‘‘测试类‘‘‘
 6     name = ‘mike‘
 7     age = ‘25‘
 8
 9     def say(self):
10         ‘‘‘测试方法‘‘‘
11         return ‘hello!‘
12
13
14 per = person()
15 has_name = hasattr(per, ‘name‘)
16 has_sex = hasattr(per, ‘sex‘)
17 has_say = hasattr(per, ‘say‘)
18 print(‘1.是否有name属性:‘, has_name)
19 print(‘2.是否有sex属性:‘, has_sex)
20 print(‘3.是否有say方法:‘, has_say)

运行结果:

1.是否有name属性: True
2.是否有sex属性: False
3.是否有say方法: True

  

getattr函数使用方法
 1 # getattr函数使用方法
 2 # getattr(object,attr[,default])
 3 # 获取对象的属性或方法,可设置输出默认值,
 4 # 如果获取方法,返回的是内存地址,如果需要运行,后面添加一对括号
 5 has_name = getattr(per, ‘name‘)
 6 has_sex = getattr(per, ‘sex‘, ‘male‘)
 7 has_say = getattr(per, ‘say‘)()
 8 print(‘1.name属性:‘, has_name)
 9 print(‘2.sex属性不存在,返回默认值:‘, has_sex)
10 print(‘3.say方法执行结果:‘, has_say)

运行结果:

1.name属性: mike
2.sex属性不存在,返回默认值: male
3.say方法执行结果: hello!
setattr函数使用方法
1 # setattr函数使用方法
2 # setattr(object,attr,values)
3 # 给对象的属性赋值,若属性不存在,则先创建再赋值
4 setattr(per, ‘name‘, ‘Tom‘)
5 print(‘1.修改name属性:‘, per.name)
6 setattr(per, ‘id‘, ‘6557‘)
7 print(‘2.创建id属性:‘, per.id)

运行结果:

1.修改name属性: Tom
2.穿件sex属性: 6557

  

时间: 2024-10-08 09:50:03

python之hasattr、getattr和setattr函数的相关文章

python中hasattr()、getattr()、setattr()函数的使用

引言: 在阅读高手写的代码时,有很多简写的形式,如果没有见过还真的看不太懂是什么意思,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr().setattr()函数的使用也一并学习了一下: 正文: 1. hasattr(object, name) 判断object对象中是否存在name属性,当然对于python的对象而言,属性包含变量和方法:有则返回True,没有则返回False:需要注意的是name参数是string类型,所以不管

Python的hasattr() getattr() setattr() 函数使用方法详解

最近用到对用户信息进行判断,看到这个方法的详解,感觉比较好,所以拿过来,让自己可以时常看看 hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 getattr(object, name[,default])获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选.需要注意的是,如果是返回的对象的方法,返回的是方法的内存地

Python的hasattr() getattr() setattr() 函数

class C(object):     def __init__(self):         self.a = 'hello'         self.b = 'world'         self.foo = 100     def get(self):         return self.a if __name__ == '__main__':     c = C()     #判断一个对象里面是否有name属性或者name方法,返回BOOL值     print(hasattr

python反射hasattr getattr setattr delattr

反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)object可以是对象,类,模块,当前Py文件.name是一个给字符串数据类型,可以是变量(属性),函数(方法).如果name在object中存在,则返回Ture,否则返回False. getattr与hasattr语法相同,返回的结果是对应name的值或函数. 反射对象的方法 a.func() re

python中hasattr getattr setattr用法

一:hasattr 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 >>> class test():  2 ...     name="xiaohua"  3 ...     def run(self):   4 ...             return "HelloWord"  5 ...   6 >>> t=te

Python的hasattr() getattr() setattr()

hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... return "HelloWord" 5 ... 6 >>> t=test() 7 >>&

【Python】hasattr() getattr() setattr() 使用方法详解

本文转自 https://www.cnblogs.com/cenyu/p/5713686.html hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... return "HelloWo

python 语法 内置函数 hasattr getattr setattr dir

参考: https://docs.python.org/3/library/functions.html?highlight=hasattr#getattr 例子1:针对类TestA 做属性操作 class TestA: def fun_1(self): print "fun_1" def fun_2(self): print "fun_2" def fun_2(): print "fun_3" test_a = TestA() print ha

Python hasattr,getattr,setattr,delattr

#!/usr/bin/env python# -*- coding:utf-8 -*-# 作者:Presley# 邮箱:[email protected]# 时间:2018-11-04# 反射使用import sysclass WebServer(object): def __init__(self,host,port): self.host = host self.port = port def start(self): print("Server is starting...")