属性的设置

笔记

class Student:
    def __init__(self, name, gender):
        self.name = name
        self.__gender = gender  # self.__gender 是私有的实例属性

    # 使用@property 修改方法,将方法转成属性使用
    @property
    def gender(self):
        return self.__gender

    # 将我们的gender这个属性设置为可写属性
    @gender.setter
    def gender(self, value):
        if value != '男' and value != '女':
            print('性别有误,已将性别默认设置为男')
            self.__gender = '男'
        else:
            self.__gender = value


stu = Student('陈梅梅', '女')
print(stu.name, '的性别是:', stu.gender)  # stu.gender就会去执行stu.gender()
# 尝试修改属性值
# stu.gender='男' # AttributeError: property 'gender' of 'Student' object has no setter

stu.gender = '其他'
print(stu.name, '的性别是:', stu.gender)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值