python 类可以调用实例变量_Python实例方法、类方法、静态方法区别详解

1、关于参数的区别

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

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

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

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

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

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

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

3、调用:

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

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

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

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

4、补充

1.静态方法不可以继承

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

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") # 通过类名称调用静态方法

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

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值