Python学习笔记之hasattr 、setattr 和 getattr 使用示例

class person(object):
    def __init__(self,name):
        self.name = name

    def call_me(self):
        print('Please call me %s' % self.name)

class student(person):

    _z_ = 0
    
    def __init__(self, name, score):
        super(student,self).__init__(name)
        self.score = score

    def print_score(self):
        print('%s: %s' %(self.name, self.score))

    def get_grade(self):
        if self.score >= 90:
            print('grade: A')
        elif self.score >= 60:
            print('grade: B')
        else:
            print('grade: C')

boy = student('xiaomin', 9)
#girl = student('xiaohua',100)

obj = student('jz',30)

#boy.print_score()
#girl.print_score()

boy.call_me()
boy.get_grade()
#girl.get_grade()

print('hasattr(obj, \'name\') =', hasattr(obj, 'name')) # 有属性'name'吗?
print('hasattr(obj, \'score\') =', hasattr(obj, 'score')) # 有属性'score'吗?
setattr(obj, 'score', 19) # 设置一个属性'score'
print('hasattr(obj, \'score\') =', hasattr(obj, 'score')) # 有属性'score'吗?
print('getattr(obj, \'score\') =', getattr(obj, 'score')) # 获取属性'score'
print('obj.score =', obj.score) # 获取属性'y'

print('getattr(obj, \'_z_\') =',getattr(obj, '_z_', 404)) # 获取属性'_z_',如果不存在,返回默认值404

f = getattr(obj, 'get_grade') # 获取属性'get_grade'
#print(f)
print(f())

输出结果:

Please call me xiaomin
grade: C
hasattr(obj, 'name') = True
hasattr(obj, 'score') = True
hasattr(obj, 'score') = True
getattr(obj, 'score') = 19
obj.score = 19
getattr(obj, '_z_') = 0
grade: C
None

哈喽!感谢您的提问,让我们开始吧。 hasattr()、getattr()、setattr() 都是 Python 内置函数,用于操作对象的属性。具体用法如下: 1. hasattr():判断一个对象是否有指定的属性,返回 True 或 False。 语法:hasattr(object, name) 参数说明: - object:用于检查是否存在指定属性的对象。 - name:属性名称,可以是字符串或变量。 示例代码: ```python class Person: name = "Tom" age = 20 p = Person() print(hasattr(p, 'name')) # 输出 True print(hasattr(p, 'gender')) # 输出 False ``` 2. getattr():获取一个对象的指定属性的值。如果属性不存在,可以设置默认值。 语法:getattr(object, name[, default]) 参数说明: - object:要获取属性值的对象。 - name:属性名。 - default:可选参数,如果属性不存在,返回的默认值,默认为 None。 示例代码: ```python class Person: name = "Tom" age = 20 p = Person() print(getattr(p, 'name')) # 输出 "Tom" print(getattr(p, 'gender', 'male')) # 没有 gender 属性,输出 "male" ``` 3. setattr():给对象设置指定的属性和属性值。 语法:setattr(object, name, value) 参数说明: - object:要设置属性的对象。 - name:属性名称。 - value:属性值。 示例代码: ```python class Person: name = "Tom" age = 20 p = Person() setattr(p, 'gender', 'male') print(p.gender) # 输出 "male" ``` 好了,以上就是 hasattr()、getattr()、setattr() 的用法了,希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值