1.类变量和实例变量
参考文档
实例变量是属于每一个实例独有的变量,类变量可以被类的所有实例共同访问
class Dog:
kind = 'canine' # class variable shared by all instances
def __init__(self, name):
self.name = name # instance variable unique to each instance
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.kind # shared by all dogs
'canine'
>>> e.kind # shared by all dogs
'canine'
>>> d.name # unique to d
'Fido'
>>> e.name # unique to e
'Buddy'
2.可变对象与不可变对象
参考文档
1 可变对象,可以修改对象的值,其id()不会变化。
2 不可变对象,有固定值,其值无法被改变,包括number、string、tuple。如果修改值,会新建一个对象。主要用于哈希常量,例如字典中的键值。
l=[]
def test(list):
print(id(list))
list.append(3)
test(l)
print(id(l))
3.id()
参考文档
返回对象的标识,保证对象在其生命周期中唯一性和持久性。如果两个变量的生命周期是无交叉的,那这两个变量的id可能相同。
4.私有变量
参考文档
定义私有变量的方式是 :在变量或方法前加入__(两个下划线)
在外部调用私有变量的方法是_类名__私有变量名
class Me:
age=[]
__sex='nan'
def __init__(self,inputName=""):
self.name=inputName
def __show(self):
print(self.name)
print(self.age)
print(self.__sex)
me=Me()
me._Me__show()
print(me._Me__sex)
5.pass
空语句
python根本不需要像java一样 预先定义各种类属性,可以用pass来作为占位符。
class news:
pass
n=news()
n.title="新闻标题"
n.id=101
6.特殊属性
参考文档1
参考文档2
几个重要的特殊属性
1、__doc__
'''
当前py文件文档说明
'''
def test():
'函数的文档说明'
pass
class Me:
'类的文档说明'
print(__doc__)
me=Me()
print(me.__doc__)
print(test.__doc__)
2、 __name__
类、函数、方法、描述符或者生成器对象的名字
print(__name__) #假如当前模块是主模块,那么 当前的模块名字就是一个固定值__main__
print(Me.__name__)
print(test.__name__)
3、__dict__
存储的对象可写属性的字典或者别的map类型的对象
7.字典类型
参考文档
类似Java中的map
user={'name':'shenyi','age':19,'obj':Me}
for key in user:
print(key)
print(user['name'])