类: 参考文档:jianshu.com/p/202a289fb2d9 Python3 中类的静态方法、普通方法、类方法 静态方法: 用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用。 普通方法: 默认有个self参数,且只能被对象调用。 类方法: 默认有个 cls 参数,可以被类和对象调用,需要加上 @classmethod 装饰器 class Classname: @staticmethod def fun(): print('静态方法') @classmethod def a(cls): print('类方法') # 普通方法 def b(self): print('普通方法') Classname.fun() Classname.a() Classname().b() C = Classname() C.fun() C.a() C.b() class Dog(): # 初始化包含 类的属性 """ __init()__:每当类Dog 创建新实例 python都会自动运行他 """ def __init__(self,name,age): self.name = name self.age = age # 行为 坐 def sit(self): print(self.name.title() + "is now sitting.") # 行为 打滚 def roll_over(self): print(self.name.title() + "rolled over !") my_dog = Dog("小花",2) # 在类中传入初始化的参数 # 访问属性 print("my dog name is "+ my_dog.name.title()+".") # 只用了初始化参数 print("my dog is "+ str(my_dog.age)+ " years old .") # 调用方法 my_dog.sit() # 调用类里面的方法 my_dog.roll_over() # * 使用类和实例 class Car(): def __init__(self,make,model,year): self.make = make self.model = model self.year = year def get_desc_name(self): long_time = str(self.year) + " " + self.make +" " + self.model # 调用初始化方法的 参数 return long_time my_car = Car("audi","a4",2016) # 类里面可以直接传 初始化的实参 print(my_car.get_desc_name()) # 统计创建的对象数: class Tool(object): # 使用赋值语句,定义类属性,记录创建工具对象的总数 count = 0 def __init__(self, name): self.name = name # 针对类属性做一个计数+1 Tool.count += 1 # 创建工具对象 tool1 = Tool("斧头") tool2 = Tool("榔头") tool3 = Tool("铁锹") # 知道使用 Tool 类到底创建了多少个对象? print("现在创建了 %d 个工具" % Tool.count) """ 继承: 编写的类是 另一个现成类的特使版本 --可使用继承 子类自动继承了父类的 所有属性和方法,同时还可以自己定义自己的属性和方法 参考文档:https://www.cnblogs.com/feeland/p/4419121.html """ 案例: class Person(object): def __init__(self,name,sex): self.name = name self.sex = sex def print_title(self): if self.sex == "male": print("man") elif self.sex == "female": print("woman") class Child(Person): # Child 继承 Person pass May = Child("May","female") Peter = Person("Peter","male") print(May.name,May.sex,Peter.name,Peter.sex) # 子类继承父类方法及属性 May.print_title() Peter.print_title()