类的声明:在类的变量名后面加不加()都对,只是不加括号是旧的写法,而且在继承时是要加括号的,所以建议使用加()的写法
类属性:直接在class中定义属性,通过类或者实例名称都可以访问,所有实例都可以共享
实例属性:通过self绑定属性,或者通过实例名动态添加属性
class People():
name = "python" # 类变量
lanuage = "Chinese"
age = 18
def __init__(self,name):
self.name = name # 实例变量
self.age = 20
p1 = People("java")
print(p1.name)
print(People.name) # 可以用类名直接调用类属性
print(p1.lanuage) # 可以用对象名直接调用类属性
print(p1.age) # 实例属性优先于类属性
p1.name = "php"
print(p1.name)
print(People.name)
p1.gender = "男"
print(p1.gender)
# print(People.gender)
p2 = People("Go")
# print(p2.gender) # 实例属性只能对象自己调用
结果:
java
python
Chinese
20
php
python
男