Python - 如何在类中定义公共、私有和受保护变量

WBOY
发布: 2024-09-12 11:34:00
转载
877人浏览过

python - 如何在类中定义公共、私有和受保护变量

介绍

python 作为一种面向对象的编程语言,提供了多种将数据封装在类中的方法。
这种封装的关键方面之一是类变量的可见性,类变量可以分为公共变量、受保护变量和私有变量。在本文中,我们将探讨如何在 python 类中定义公共、私有和受保护变量。

这些变量的行为与其他编程语言非常不同。这些访问控制只是python中的命名约定,而不是对象的实际隐藏。

1. 公共变量

公共变量是最容易访问的变量类型。可以从课堂内外的任何地方访问它们。在python中,除非明确定义,否则所有类变量默认都是公共的。

示例:

class myclass:
    def __init__(self, name):
        self.name = name  # public variable

obj = myclass("john")
print(obj.name)  # accessible outside the class
#output : john
登录后复制

在此示例中,name 是一个公共变量。您可以从类外访问和修改它,没有任何限制。

2. 受保护的变量

受保护的变量只能在类及其子类中访问。虽然 python 不强制执行严格的访问控制,但表示变量受保护的约定是在其名称前添加一个下划线 (_)。

立即学习Python免费学习笔记(深入)”;

示例:

class myclass:
    def __init__(self, name, age):
        self._age = age  # protected variable

class childclass(myclass):
    def display(self):
        print(f"age: {self._age}")  # accessible within a subclass

obj = childclass("john", 30)
obj.display()  
# output: age: 30
登录后复制

在此示例中,年龄是受保护的变量。虽然 python 不会阻止您直接在类外部访问它,但这样做违背了预期用途。

3. 私有变量

私有变量只能在定义它们的类中访问。 python 通过在变量名前添加双下划线 (__) 来表示私有变量。这会触发名称修改,从而使从类外部访问私有变量变得更加困难(但并非不可能)。

示例:

class myclass:
    def __init__(self, name, age, salary):
        self.__salary = salary  # private variable

    def display_salary(self):
        print(f"salary: {self.__salary}")  # accessible within the class

obj = myclass("john", 30, 50000)
obj.display_salary()  # output: salary: 50000

# trying to access the private variable outside the class
print(obj.__salary)  # raises attributeerror
登录后复制

在这个例子中,salary 是一个私有变量。如果您尝试直接从类外部访问它,python 将引发 attributeerror。但是,您仍然可以使用名称损坏的版本来访问它,尽管不鼓励这样做。

名称修改示例:

print(obj._MyClass__salary)  # Output: 50000
登录后复制

这行代码演示了如何在内部重命名私有变量以包含类名称,从而使它们更难访问。

概括

  • 公共变量:可从任何地方访问;没有下划线。
  • 受保护的变量:在类及其子类中可访问;以单个下划线 (_) 为前缀。
  • 私有变量:只能在类内部访问;以双下划线 (__) 为前缀。

虽然 python 的访问控制基于命名约定而不是严格执行,但遵循这些约定有助于保持代码的清晰度和完整性。了解如何定义和使用公共变量、受保护变量和私有变量对于 python 中有效的面向对象编程至关重要。

以上就是Python - 如何在类中定义公共、私有和受保护变量的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号