类的概念:一组相关数据,和操作这组数据的方法。
- 属性(类变量、实例变量)
- 方法(实例方法、类方法、静态方法)
那么这些属性和方法是怎么去访问的呢?下面进行总结,方便对比和记忆:
class Person: count = 0 #类变量 nation = "中国" def __init__(self,name,gender): self.name = name self.gender = gender Person.count +=1 def get_name(self):#实例方法,必须要实例化 return self.name #类方法:可以使用类变量,不能使用实例变量 #通过类名来使用,类名.get_instance_count() #也可以通过实例调用,实例对象.get_instance_count() @classmethod def get_instance_count(cls): return Person.count @classmethod def create_a_instance(cls): return Person("张","女") @staticmethod #静态方法:不需要self和cls def get_nation(): return Person.nation wulaoshi = Person("吴老师","Male") #实例化 #访问类变量的两种方式: ''' ①类名.类变量 ②实例名.类变量 ''' print("类变量的调用方法:") print(Person.count) print(wulaoshi.count) #访问实例变量的方法: ''' ①实例名.实例变量 ②实例化.实例变量 ''' print("实例变量的调用方法:") print(wulaoshi.name) print(Person("吴老师","Male").name) #访问实例方法的三种方式: ''' ①实例名.实例方法() ②实例化.实例方法() ③类名.实例方法(实例名) ''' print("实例方法的调用方法:") print(Person("吴老师","Male").get_name()) print(wulaoshi.get_name()) print(Person.get_name(wulaoshi)) #注意:实例方法是不能用类名来直接调用的 #访问类方法的两种方式: ''' ①类名.类方法() ②实例化.类方法() ''' print("类方法的调用方法:") print(Person.get_instance_count()) print(Person("吴老师","Male").get_instance_count()) #访问静态方法的两种方式: ''' ①类名.静态方法() ②实例化.静态方法() ''' print("静态方法的调用方法:") print(Person.get_nation()) print(Person("吴老师","Male").get_nation())
E:\>py -3 a.py
类变量的调用方法:
1
1
实例变量的调用方法:
吴老师
吴老师
实例方法的调用方法:
吴老师
吴老师
吴老师
类方法的调用方法:
3
4
静态方法的调用方法:
中国
中国