python 静态方法 类方法 的作用_Python静态方法、类方法、属性方法

静态方法

使用静态方法以后,相当于把下面的函数和类的关系截断了,它的作用相当于是类下面的一个独立函数,不会自动传入参数self。

class people:

.....

@staticmethod

def xxx():

pass

类方法

只能访问类变量,不能访问实例变量。

@classmethod

class dog:

name = "小黑"

def __init__(self,name):

self.name = name

@classmethod

def hit(cls):

print("%s" % (cls.name))

d1 = dog("小花")

d1.hit()

#输出

小黑

属性方法

把一个方法变成一个静态属性,调用的时候不需要加括号(d1.hit)。

class dog:

def __init__(self,name):

self.name = name

@property

def hit(self):

print("%s" % (self.name))

d1 = dog("小花")

d1.hit

#输出

小花

那么如何给属性方法传入参数呢?

可以看下面的代码,需要加上@hit.setter装饰(必须写在@property下面),且两个函数名保持一致。

class dog:

def __init__(self,name):

self.name = name

self.__age = None

@property

def hit(self):

print("%s%s" % (self.name,self.__age))

@hit.setter

def hit(self,age):

print("Set hit input:",age)

self.__age = age

d1 = dog("小花")

d1.hit

d1.hit = 11

d1.hit

#输出

小花None

Set hit input: 11

小花11

既然能传参,那么属性方法也是支持删除的。

@hit.deleter

def hit(self):

del self.__age

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值