当前位置:   article > 正文

python函数和方法(实例方法,类方法,静态方法)_python 函数和方法

python 函数和方法

函数单独定义,而方法必须定义在类中

eat1为函数,函数可以单独使用

 1.方法(实例方法,类方法,静态方法)

eat2为方法,方法的调用如下:

  1. def eat1(): #eat1为函数
  2. print("这是一个函数")
  3. eat1() #函数可以单独使用
  4. class Person:
  5. age = 0 #类属性
  6. def eat2(self): #eat2为实例方法
  7. print("这是一个实例方法",self)
  8. @classmethod
  9. def leifangfa(cls): #类方法
  10. print("这是一个类方法",cls)
  11. @staticmethod
  12. def jingtaifangfa(): #静态方法
  13. print("这是一个静态方法")
  14. #方法的调用
  15. 实例方法只能通过实例化调用,而类方法,静态方法可以直接通过类调用,也可以通过实例化调用
  16. #实例化调用
  17. #三种方法都可以通过实例化调用,以后就写实例化调用
  18. p = Person() #实例化
  19. p.num = 10 #实例属性
  20. p.eat2() #实例调用
  21. p.leifangfa()
  22. p.jingtaifangfa()
  23. Person().eat2() #实例调用
  24. Person().leifangfa()
  25. Person().jingtaifangfa()
  26. #类方法,静态方法可以直接通过类调用
  27. Person.leifangfa()
  28. Person.jingtaifangfa() #类调用

实例方法:默认第一个参数需要接收一个实例

类方法:默认第一个参数需要接收一个类

静态方法 :第一个参数啥也不接收

方法的选择 

设计的方法需要实例本身的时候,用实例方法;设计的方法需要类本身的时候,用类方法;设计的方法啥都不需要的时候,用静态方法;

实例方法可以访问实例属性 eg:num

类方法只能访问类属性 eg:age


2.类的另一种创建 

元类(type):类对象的最高级别,包括 int,str....等一切类

 

  1. xxx = type("Dog",(),{"age":0}) # xxx是类,Dog是类名,age=0是类属性,()中填的是父类
  2. d = xxx() #类的实例化
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/595247
推荐阅读
相关标签
  

闽ICP备14008679号