Python编程语言2

class Account:

    # 普通属性
    bank = "ABC"
    # 内部属性
    _username = "School"
    # 私有属性
    __password = "111"

    @property
    def password(self):
        return self.__password
    @password.setter
    def password(self,value):
        # 增加数据的校验
        if len(value) >= 8:
            self.__password = value
        else:
            print("密码长度最少要有8位!")

通过类名访问类属性

print(Account.bank)  # 将会打印 ABC
print(Account._username)  # 将会打印 School
print(Account.__password)  # 将会引发 AttributeError

print(Account.__dict__)

实例化

obj = Account()

实例访问类属性

print(obj.bank)  # 将会打印 ABC
print(obj._username)  # 将会打印 School
print(obj.__username)  # 将会引发AttributeError

修改私有属性(满足校验条件)

obj.password = "eray2222"  # 修改成功
print(obj.password)  # 将会打印 eray2222

修改私有属性(不满足校验条件)

obj.password = "123"  # 修改不会生效
print(obj.password)  # 将会打印 eray2222

可以注意下笔记的格式,代码可以用代码块表示,这样整体格式都不变,比如

class Account:

    @password.setter
    def password(self,value):
    # 增加数据的校验
        if len(value) >= 8:
            self.__password = value
        else:
            print("密码长度最少要有8位!")

已经改好了,谢谢老师啦 :wink: