您的位置:首页 > 编程语言 > Python开发

python类属性、实例属性及私有属性【For Java 程序员】

2015-12-04 17:09 429 查看
1. 相同点:

类属性相当于Java中的static属性,实例属性相当于Java中的public的实例属性,私有属性相当于Java中的私有属性;

2.不同点:

Java中的类属性可以被类或其任意实例修改,但是python中的类属性,只能由类修改,下面通过例子进行分析:

class User():

number = 20

def __init__(self,name,major):
self.name = name
self.__major = major      #实例私有属性

def print_major(self):
print self.__major

obj = User("Andy","software engineer") 

2.1.  Python中,类属性直接在类模块中定义,可以通过类或者其实例可以直接访问:

print User.number , obj.number  #输出一致:20, 20

2.2 通过类修改number值:

User.number = 35

print User.number , obj.number   #输出一致:35,35

2.3  Python中,实例对象可以动态添加其实例属性:

obj.number= 15

print User.number, obj.number  #输出不一致:35,15 (此时,类实例对象obj是自己的实例属性,覆盖同名的类属性)

3. python 实例属性&私有实例属性

私有属性在类中以‘__’开头,例子中的 ‘__major';

实例属性在类的__init__方法中定义,例子中的 'name' ; 同时可以动态创建,如2.3。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python