• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 实例讲解Python中的私有属性

实例讲解Python中的私有属性

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python开发实例,python脚本编写实例,python项目实例,python开发网站实例,python实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子:
#! encoding=UTF-8
 
class A:
    def __init__(self):
        
        # 定义私有属性
        self.__name = "wangwu"
        
        # 普通属性定义
        self.age = 19
        
a = A()
 
# 正常输出
print a.age
 
# 提示找不到属性
print a.__name
</div>
执行输出:
Traceback (most recent call last):
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 19, in <module>
    print a.__name
AttributeError: A instance has no attribute '__name'
</div>
访问私有属性__name时居然提示找不到属性成员而不是提示权限之类的,于是当你这么写却不报错:
#! encoding=UTF-8
 
class A:
    def __init__(self):
        
        # 定义私有属性
        self.__name = "wangwu"
        
        # 普通属性定义
        self.age = 19
        
 
a = A()
 
a.__name = "lisi"
print a.__name
</div>
执行结果:
1
lisi
在Python中就算继承也不能相互访问私有变量,如:
#! encoding=UTF-8
 
class A:
    def __init__(self):
        
        # 定义私有属性
        self.__name = "wangwu"
        
        # 普通属性定义
        self.age = 19
        
 
class B(A):
    def sayName(self):
        print self.__name
        
 
b = B()
b.sayName()
</div>
执行结果:
Traceback (most recent call last):
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 19, in <module>
    b.sayName()
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 15, in sayName
    print self.__name
AttributeError: B instance has no attribute '_B__name'
</div>
或者父类访问子类的私有属性也不可以,如:
#! encoding=UTF-8
 
class A:
    def say(self):
        print self.name
        print self.__age
        
 
class B(A):
    def __init__(self):
        self.name = "wangwu"
        self.__age = 20
 
b = B()
b.say()
</div>
执行结果:
wangwu
Traceback (most recent call last):
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 15, in <module>
    b.say()
  File "C:\Users\lee\Documents\Aptana Studio 3 Workspace\testa\a.py", line 6, in say
    print self.__age
AttributeError: B instance has no attribute '_A__age'
</div>

</div>

您可能想查找下面的文章:

  • Python开发的实用计算器完整实例
  • Python只用40行代码编写的计算器实例
  • python获取当前运行函数名称的方法实例代码
  • Python类的动态修改的实例方法
  • Python中动态创建类实例的方法
  • Python类的动态修改的实例方法
  • Python中动态创建类实例的方法
  • Python正则简单实例分析
  • 利用Python获取操作系统信息实例
  • Python过滤列表用法实例分析

相关文章

  • Python中字典(dict)和列表(list)的排序方法实例
  • 独特的python循环语句
  • 浅谈python字典多键值及重复键值的使用
  • 详解Python迭代和迭代器
  • Python类属性与实例属性用法分析
  • asyncio 的 coroutine对象 与 Future对象使用指南
  • 请不要重复犯我在学习Python和Linux系统上的错误
  • Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
  • Python中的filter()函数的用法
  • Python实现树莓派WiFi断线自动重连的实例代码

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python中编写ORM框架的入门指引
    • Swift中的协议(protocol)学习教程
    • Python基础之函数用法实例详解
    • 浅析Python 中整型对象存储的位置
    • Python实现给文件添加内容及得到文件信息的方法
    • Python求算数平方根和约数的方法汇总
    • 浅谈function(函数)中的动态参数
    • Python Matplotlib库入门指南
    • Python加pyGame实现的简单拼图游戏实例
    • python保存字符串到文件的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有