Python-类属性、实例属性
1. 类的三大要素:类名、属性、方法
属性又分为实例属性和类属性
1 class Tool(object): 2 #属性 3 num=0 4 5 #方法 6 def __init__(self,new_name): 7 self.name = new_name
写在__init__中的是实例属性,也是通过方法定义的,是跟着实例对象的
写在类下面,def外面的,是类属性,Tool 称为类对象
2. 类属性和实例属性区别:实例对象间不能互相共享他们的实例属性,类对象可以在实例对象中共享(类属性只在定义类的时候定义一次)
3. 类属性的使用:
在实例方法中调用类方法时,使用 Tool.num += 1
类外面使用时,可以用 Tool.num ,也可以用 tool1 = Tool('钳子') tool1.num 来使用类属性
4. 几种方法:
- 实例方法:常见的带 self 的方法都是实例方法
- 类方法:
class Game(object): @classmethod def add_num(cls): cls.num = 100 #调用 game = Game() game.add_num() Game.add_num()
类方法的调用和类属性的调用一样,可以用类名,也可以用实例化的对象调用
- 静态方法:为了使一个文件中的格式看起来尽量统一(类和函数不混着用),将一些功能独立的函数(与类和实例都没有关系),这时候可以使用静态方法 @staticmethod,区别是既不需要用 self 也不需要用 cls
class Game(object): @staticmethod def print_info(): print('------------') print('随便打印点什么') print('------------') #调用 game = Game() game.print_info() Game.print_info()
静态方法的调用也是既可以用类名直接调用,也可以用实例对象调用