赞
踩
函数单独定义,而方法必须定义在类中
eat1为函数,函数可以单独使用
eat2为方法,方法的调用如下:
- def eat1(): #eat1为函数
- print("这是一个函数")
- eat1() #函数可以单独使用
-
-
-
- class Person:
- age = 0 #类属性
-
- def eat2(self): #eat2为实例方法
- print("这是一个实例方法",self)
-
-
- @classmethod
- def leifangfa(cls): #类方法
- print("这是一个类方法",cls)
-
- @staticmethod
- def jingtaifangfa(): #静态方法
- print("这是一个静态方法")
-
- #方法的调用
- 实例方法只能通过实例化调用,而类方法,静态方法可以直接通过类调用,也可以通过实例化调用
-
-
- #实例化调用
- #三种方法都可以通过实例化调用,以后就写实例化调用
- p = Person() #实例化
- p.num = 10 #实例属性
-
- p.eat2() #实例调用
- p.leifangfa()
- p.jingtaifangfa()
-
- Person().eat2() #实例调用
- Person().leifangfa()
- Person().jingtaifangfa()
-
- #类方法,静态方法可以直接通过类调用
- Person.leifangfa()
- Person.jingtaifangfa() #类调用
-
-
实例方法:默认第一个参数需要接收一个实例
类方法:默认第一个参数需要接收一个类
静态方法 :第一个参数啥也不接收
方法的选择
设计的方法需要实例本身的时候,用实例方法;设计的方法需要类本身的时候,用类方法;设计的方法啥都不需要的时候,用静态方法;
实例方法可以访问实例属性 eg:num
类方法只能访问类属性 eg:age
元类(type):类对象的最高级别,包括 int,str....等一切类
- xxx = type("Dog",(),{"age":0}) # xxx是类,Dog是类名,age=0是类属性,()中填的是父类
-
- d = xxx() #类的实例化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。