本文摘自php中文网,作者巴扎黑,侵删。
一、概念
我们前面提到类的私有属性,也就是类中不能直接访问的。但是不是可以直接访问的属性就是公有属性呢?其实也不是。在__init__()构造函数中的属性,对外基本都可以访问,但是他们并不是公有属性。那什么叫公有属性呢?
定义: 指的是所属这个类的所有对象,都可以访问的属性,叫做公有属性。
二、属性
2.1 成员属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Person( object ):
def __init__( self , name, job, phone, address):
self .name = name
self .job = job
self .phone = phone
self .__address = address
def get_private( self ):
return self .__address
def sayhi( self ):
print ( "hell,%s" % self .name)
p1 = Person( 'Bigberg' , 'Doctor' , '8833421' , 'hz' )
p2 = Person( 'Ashlex' , 'Police' , '8833232' , 'bj' )
|
1 2 3 4 | print (p1.job, p2.job)
# 输出
Doctor Police
|
我们在Person类下定义了两个对象,p1和p2。很显然我们没有办法让p1来访问到p2 的job属性,即Police。那么在构造函数__init__()中的self.name等属性,被称之为 成员属性。
2.2 公有属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Person( object ):
nationality = 'CN'
def __init__( self , name, job, phone, address):
self .name = name
self .job = job
self .phone = phone
self .address = address
def sayhi( self ):
print ( "hell,%s" % self .name)
p1 = Person( 'Bigberg' , 'Doctor' , '8833421' , 'hz' )
p2 = Person( 'Ashlex' , 'Police' , '8833232' , 'bj' )
print (p1.nationality)
print (p2.nationality)
CN
CN
|
公有属性而言,所有实例对象访问它得到的值是一样的。
阅读剩余部分
相关阅读 >>
Python中有堆吗
Python里有成员变量吗
numpy中以文本的方式存储以及读取数据方法
怎么安装Python3.7.2
用Python实现高性能测试工具(二)
Python如何把ascii转换为字符
Python 中的int()函数怎么用
什么是Python import语句?在Python中的import语句作用有哪些?
关于tensorflow中的tf.train.batch函数
Python中reverse、sort、sorted三个列表排序使用方法详解
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 有关类的公有属性的介绍