python学习之对象的方法思考

方法

在python类中,方法分为实例方法,类方法,静态方法
1、实例方法
实例方法是通过实例对象进行调用的,在定义实例方法时,都需要传递一个实例对象进去,一般我们会将这个实例对象定义为self,当然也可以是其他参数名称。实例在调用实例方法时,会将实例方法解析为为类名.方法名(对象),例如下面的一个例子,a.prin()A.prin(a),实际在调用a.prin()时,python编译会将a.prin()转化为A.prin(a),

class A:
    def __init__(s):
        pass

    def prin(s):
        print("in a")

a = A()
a.prin()
A.prin(a) #和上面通过实例调用的效果相同

2、类方法
类方法需要在方法前要有@classmethod,用于标识该方法是类方法,在定义类方法是,需要传递一个类对象,一般用cls作为形参

@classmethod
def function_name(cls[,形参])
	方法体

在这里需要注意的是类方法体中,不能出现实例属性和方法,这是因为在调用类方法时并不能保证实例已经生成

class A:
    def __init__(s):
        pass

    @classmethod
    def prin(s):
        print("in a")


A.prin() #类调用类方法
a = A()
a.prin() #实例调用类方法

3、静态方法
类方法需要在方法前要有@staticmethod,用于标识该方法是类方法

@staticmethod
def function_name([形参])
	方法体
class A:
    def __init__(s):
        pass

    @classmethod
    def prin(s):
        print("in a")

    @staticmethod
    def sprin():
        print("static function")


A.sprin() #类调用静态方法
a = A()
a.sprin() #实例调用静态方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值