最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

实例讲解Python中的私有属性

来源:动视网 责编:小采 时间:2020-11-27 14:30:52
文档

实例讲解Python中的私有属性

实例讲解Python中的私有属性:在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子: 代码如下: #! encoding=UTF-8 class A: def __init__(self): # 定义私有属性 self.__name = wangwu # 普通属性定义 self.age = 19 a = A
推荐度:
导读实例讲解Python中的私有属性:在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子: 代码如下: #! encoding=UTF-8 class A: def __init__(self): # 定义私有属性 self.__name = wangwu # 普通属性定义 self.age = 19 a = A


在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子:
代码如下:


#! encoding=UTF-8

class A:
def __init__(self):

# 定义私有属性
self.__name = "wangwu"

# 普通属性定义
self.age = 19

a = A()

# 正常输出
print a.age

# 提示找不到属性
print a.__name


执行输出:
代码如下:


Traceback (most recent call last):
File "C:UsersleeDocumentsAptana Studio 3 Workspace estaa.py", line 19, in
print a.__name
AttributeError: A instance has no attribute '__name'


访问私有属性__name时居然提示找不到属性成员而不是提示权限之类的,于是当你这么写却不报错:
代码如下:


#! encoding=UTF-8

class A:
def __init__(self):

# 定义私有属性
self.__name = "wangwu"

# 普通属性定义
self.age = 19


a = A()

a.__name = "lisi"
print a.__name


执行结果:
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()


执行结果:
代码如下:


Traceback (most recent call last):
File "C:UsersleeDocumentsAptana Studio 3 Workspace estaa.py", line 19, in
b.sayName()
File "C:UsersleeDocumentsAptana Studio 3 Workspace estaa.py", line 15, in sayName
print self.__name
AttributeError: B instance has no attribute '_B__name'


或者父类访问子类的私有属性也不可以,如:
代码如下:


#! 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()


执行结果:
代码如下:


wangwu
Traceback (most recent call last):
File "C:UsersleeDocumentsAptana Studio 3 Workspace estaa.py", line 15, in
b.say()
File "C:UsersleeDocumentsAptana Studio 3 Workspace estaa.py", line 6, in say
print self.__age
AttributeError: B instance has no attribute '_A__age'

文档

实例讲解Python中的私有属性

实例讲解Python中的私有属性:在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子: 代码如下: #! encoding=UTF-8 class A: def __init__(self): # 定义私有属性 self.__name = wangwu # 普通属性定义 self.age = 19 a = A
推荐度:
标签: 讲解 例子 解析
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top