Python之hasattr,getattr与setattr的使用

Python之hasattr,getattr与setattr的使用,第1张

概述一.定义一个类classPerson(object):def__init__(self,name):self.name=namedeffun1(self):print('fun1')二.hasattr检查某对象Object中是否包某个属性或方法。语法为:hasattr(object,name)。(一).用法person=Person('test')print 一. 定义一个类
class Person(object):    def __init__(self, name):        self.name = name    def fun1(self):        print('fun1')
二. hasattr

检查某对象Object中是否包某个属性或方法。语法为:hasattr(object,name)

(一). 用法
person = Person('test')print(hasattr(person, 'name'))  # Trueprint(hasattr(person, 'name1'))  # Falseprint(hasattr(person, 'fun1'))  # True

由于name1Person这个类中不存在会返回False,而name存在就会返回True. 可以使用hasattr来判断某对象中是否存在某个属性或者某个方法。

三. getattr

获取某个对象Object中的属性的属性值。语法为:getattr(object,name,default=None)

(一). 用法
person1 = Person('test1')print(getattr(person1, 'name'))  # test1print(getattr(person1, 'name1', '没有值'))  # 没有值# 不建议使用getattr *** 作获取函数的返回值。# <bound method Person.fun1 of <__main__.Person object at 0x7fa7aa29b460>>print(getattr(person1, 'fun1')) 

注意:如果使用getattr来获取不存在的属性时会出现报错。个人建议先使用hasattr判断你需要的属性存在时再使用getattr来获取值。

四. setattr

给某个对象Object添加一个属性或方法设置其属性或方法的值。语法为:setattr(object,name,value)

(一). 用法1. 设置属性
person2 = Person('test2')setattr(person2, 'age', 18)print(person2.age)  # 18print(person2.name)  # test2setattr(person2, 'name', 'new test2')print(person2.name)  # new test2
2. 设置方法
# 设置不存在的方法。person3 = Person('test3')def test():    return "test 函数"setattr(person3, 'test', test)print(person3.test())  # test 函数# 设置同名的方法,同名方法里的内容会随之替换的。def fun1():    return 'fun1 函数'setattr(person3, 'fun1', fun1)print(person3.fun1()) # fun1 函数
总结

以上是内存溢出为你收集整理的Python之hasattr,getattr与setattr的使用全部内容,希望文章能够帮你解决Python之hasattr,getattr与setattr的使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1184851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存