首页 > 其他 > 详细

面向对象

时间:2019-09-05 10:11:08      阅读:71      评论:0      收藏:0      [点我收藏+]

反射

hasattr()函数用于判断对象是否包含对应的属性,返回布尔值,有的话返回True没有返回False

 

class Person(object):
    city = "beijing"

    def __init__(self, name):
        self.name = name

    def talk(self):
        print("{} are you ok".format(self.name))


p1 = Person("李大伟")
print(hasattr(p1, "address"))  # False
print(hasattr(p1, "city"))  # True
getattr()返回一个对象的属性值
获取对象的属性和方法,有则返属性,无则返回默认值,默认值可以自己设置
class Person(object):
    city = "beijing"

    def __init__(self, name):
        self.name = name

    def talk(self):
        print("{} are you ok".format(self.name))


p1 = Person("李大伟")
print(getattr(p1, "name"))  # 获取属性
print(getattr(p1, "talk"))  # 获取方法的内存地址
print(getattr(p1, "speak", "无此属性"))  # 没有此属性

 

 

setattr 给一个对象设置属性
delattr 给一个对象删除属性
class Person(object):
    city = "beijing"

    def __init__(self, name):
        self.name = name

    def talk(self):
        print("{} are you ok".format(self.name))


p1 = Person("李大伟")
setattr(p1, "speak", "chinese")

print(p1.__dict__)  # {‘name‘: ‘李大伟‘, ‘speak‘: ‘chinese‘}

delattr(p1, "name")
print(p1.__dict__)  # {‘speak‘: ‘chinese‘}

 

 

面向对象

原文:https://www.cnblogs.com/ligiao/p/11462894.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!