Python面向对象 -- 多态

本套课在线学习视频(网盘地址,保存到网盘即可免费观看):

​https://pan.quark.cn/s/2040f00d3205​

在Python中,变量的访问控制可以通过不同的命名约定实现,包括系统变量、保护变量和私有变量。这些命名约定有助于保护数据安全,防止意外修改,并确保数据的完整性。

00:00 - 面向对象编程中的变量访问控制

变量访问控制类型

  1. 系统变量:通常以下划线开始和结束,不宜直接使用。
  2. 保护变量:以单下划线开头,用于限制对变量的访问。
  3. 私有变量:以双下划线开头,用于防止外部直接访问和修改。

示例:Person类

class Person:
    def __init__(self, name, age):
        self._name = name  # 保护变量
        self.__age = age   # 私有变量

    def get_age(self):
        return self.__age

    def set_age(self, age):
        if 0 <= age <= 120:
            self.__age = age
        else:
            print("Invalid age. Please set a valid age.")

person = Person("Alice", 30)
print(person._name)  # 可以访问保护变量
# print(person.__age)  # 无法直接访问私有变量
print(person.get_age())  # 通过方法访问私有变量
person.set_age(150)  # 尝试设置无效的年龄
person.set_age(25)   # 设置有效的年龄
print(person.get_age())

03:42 - 实现变量范围保护与私有变量的应用

变量范围保护

通过设置变量的取值范围以及将其转换为私有变量来保护数据安全。

示例:成绩管理

class Student:
    def __init__(self, name, score):
        self._name = name  # 保护变量
        self.__score = score  # 私有变量

    def get_score(self):
        return self.__score

    def set_score(self, score):
        if 0 <= score <= 100:
            self.__score = score
        else:
            print("Invalid score. Please set a valid score.")

student = Student("Bob", 85)
print(student.get_score())  # 通过方法访问私有变量
student.set_score(150)  # 尝试设置无效的成绩
student.set_score(90)   # 设置有效的成绩
print(student.get_score())

05:32 - Python中的私有变量及其访问控制

私有变量的访问控制

私有变量(以双下划线开头)用于防止外部直接访问和修改,保证数据的安全性和完整性。

示例:私有变量的访问

class Person:
    def __init__(self, name, age):
        self.__name = name  # 私有变量
        self.__age = age    # 私有变量

    def get_name(self):
        return self.__name

    def get_age(self):
        return self.__age

person = Person("Alice", 30)
# print(person.__name)  # 无法直接访问私有变量
print(person.get_name())  # 通过方法访问私有变量
print(person.get_age())   # 通过方法访问私有变量

# 尝试修改私有变量
# person.__name = "Bob"  # 不会修改原有的私有变量,而是创建一个新的变量
# print(person.get_name())  # 仍然输出 "Alice"

最佳实践

尽量在类的内部访问私有变量,以确保数据的安全性和完整性。

class Person:
    def __init__(self, name, age):
        self.__name = name  # 私有变量
        self.__age = age    # 私有变量

    def get_name(self):
        return self.__name

    def get_age(self):
        return self.__age

    def set_name(self, name):
        self.__name = name

    def set_age(self, age):
        if 0 <= age <= 120:
            self.__age = age
        else:
            print("Invalid age. Please set a valid age.")

person = Person("Alice", 30)
print(person.get_name())  # 通过方法访问私有变量
print(person.get_age())   # 通过方法访问私有变量
person.set_name("Bob")
person.set_age(25)
print(person.get_name())  # 输出 "Bob"
print(person.get_age())   # 输出 25

总结

在Python面向对象编程中,通过使用系统变量、保护变量和私有变量,可以实现对变量的访问控制,保护数据安全,防止意外修改,并确保数据的完整性。私有变量(以双下划线开头)特别用于防止外部直接访问和修改,最佳实践是在类的内部访问私有变量,以确保数据的安全性和完整性。

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值