gpt4 book ai didi

Python实例方法、类方法、静态方法区别详解

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python实例方法、类方法、静态方法区别详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、关于参数的区别 。

实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self 。

类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用 cls 。

静态方法:定义静态方法的时候可以不定义形参 。

2、关于方法定义时候添加装饰器的区别 。

实例方法:不需要添加装饰器 。

类方法:需要添加装饰器 ----> @classmethod 。

静态方法:需要添加装饰器 ---> @staticmethod 。

3、调用:

1.实例方法可以通过对象直接调用 。

2.但是用类名调用的时候,需要创建一个对象,并且在传递参数的时候要将对象传递进去 。

3.类方法可以通过类名直接调用,也可以通过对象来调用 。

4.静态方法可以通过类名直接调用,也可以通过对象来调用 。

4、补充 。

  1.静态方法不可以继承   。

  2.类方法不能访问实例变量,只能访问类变量 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Dog():
 
   age = 3   # 类变量
   def __init__( self ):
     self .name = "XiaoBai"  # 实例变量
 
   def run( self ):   # 实例方法
     print ( "{} years old's {} is running!" . format ( self .age, self .name))
 
   @classmethod
   def eat( cls ):
     # print(cls.name)    # 类方法,不能访问实例变量(属性)
     print ( "XiaoHei is {} years old" . format ( cls .age))  # 类方法只能访问类变量
 
   @staticmethod
   def sleep(name):
     # 静态方法与类无关,只能类中的一个功能而已
     # 静态方法不能访问类变量和实例变量
     print ( "{} is sleeping" . format (name))
 
d = Dog()
d.run()   # 通过实例化对象调用实例方法
Dog.run(d) # 通过类名称调用实例方法,需要在方法中传入实例对象
d.eat()   # 通过实例化对象调用类方法
Dog.eat()  # 通过类名称调用类方法
d.sleep( "XiaoLan" # 通过实例化对象调用静态方法
Dog.sleep( "XiaoLan" ) # 通过类名称调用静态方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://www.cnblogs.com/ZhengYing0813/p/13544340.html 。

最后此篇关于Python实例方法、类方法、静态方法区别详解的文章就讲到这里了,如果你想了解更多关于Python实例方法、类方法、静态方法区别详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com