1.静态字段
class amimal:
#静态字段,属于类
origin = '生物'
def __init__(self,name):
= name
dog = amimal('dog')
print(amimal.__dict__) # 静态字段在里面
print(dog.__dict__) # {'name': 'dog'}
print(dog.origin) # 生物 通过对象可以访问到静态字段
dog.origin = 'pig'
print(dog.origin) # pig 通过对象修改后,该对象的静态属性被修改
print(amimal.origin) #生物 类中没有改变静态字段最好通过类去访问,类中的普通方法通过对象去访问,对象中的普通字段通过对象去访问
2.静态方法
class amimal:
#静态字段,属于类,通过类访问
origin = '生物'
def __init__(self,name):
#局部变量,在本函数内使用
test = 'aaa'
#普通字段,属于对象,通过对象访问
= name
#普通方法,属于类,通过对象访问
def wang(self):
print('汪汪汪')
#静态方法,属于类,通过类访问
@staticmethod
def eat(): #无self参数
print('吃')
dog = amimal('狗')
print(amimal.origin) #静态字段,类访问
amimal.eat() #静态方法,类访问
print() #普通字段,对象访问
dog.wang() #普通访问,对象访问虽然类和对象都可以访问静态方法,静态字段,普通字段,普通方法,但是其他语言中有严格要求, 所有为了以后方便学其他语言,请严格按照上述的访问方式
3.类方法
class amimal:
#静态字段,属于类,通过类访问
origin = '生物'
def __init__(self,name):
#局部变量,在本函数内使用
test = 'aaa'
#普通字段,属于对象,通过对象访问
= name
#普通方法,属于类,通过对象访问
def wang(self):
print('汪汪汪')
#静态方法,属于类,通过类访问
@staticmethod
def eat(): #无self参数 ,可以有多个参数
print('吃')
#类方法,属于类,通过类访问
@classmethod
def drink(cls): #比静态方法多一个cls 参数,将类自动传给cls
print('喝')
dog = amimal('狗')
print(amimal.origin) #静态字段,类访问
amimal.eat() #静态方法,类访问
amimal.drink() # 类方法,类访问
print() #普通字段,对象访问
dog.wang() #普通访问,对象访问类方法必须有一个cls参数 ,是种特殊的静态方法,将类自动传给cls参数。
静态方法可以没有参数,也可以有多个参数。
普通方法必须有一个self参数,将对象自动传给self参数
总结:通过类访问:静态字段,静态方法,类方法(特殊的静态方法)
通过对象访问:普通字段,普通方法
















