python学习笔记

来源:互联网 发布:淘宝换货售后卡怎么写 编辑:程序博客网 时间:2024/04/27 03:56

静态⽅法和类⽅法
1. 类⽅法
是类对象所拥有的⽅法,需要⽤修饰器 @classmethod 来标识其为类⽅法,对于类⽅法,第⼀个参数必
须是类对象,⼀般以 cls 作为第⼀个参数(当然可以⽤其他名称的变量作为其第⼀个参数,但是⼤部
分⼈都习惯以’cls’作为第⼀个参数的名字,就最好⽤’cls’了),能够通过实例对象和类对象去访问。
class People(object):
country = ‘china’

#类⽅法,⽤classmethod来进⾏修饰

@classmethod
def getCountry(cls):
return cls.country
p = People()
print p.getCountry() #可以⽤过实例对象引⽤
print People.getCountry() #可以通过类对象引⽤
类⽅法还有⼀个⽤途就是可以对类属性进⾏修改:
class People(object):
country = ‘china’

#类⽅法,⽤classmethod来进⾏修饰

@classmethod
def getCountry(cls):
return cls.country
@classmethod
def setCountry(cls,country):
cls.country = country
p = People()
print p.getCountry() #可以⽤过实例对象引⽤
print People.getCountry() #可以通过类对象引⽤
p.setCountry(‘japan’)
print p.getCountry()
print People.getCountry()
Table of Contents |
静态⽅法和类⽅法 47
结果显示在⽤类⽅法对类属性修改之后,通过类对象和实例对象访问都发⽣了改变
2. 静态⽅法
需要通过修饰器 @staticmethod 来进⾏修饰,静态⽅法不需要多定义参数
class People(object):
country = ‘china’
@staticmethod

#静态⽅法

def getCountry():
return People.country
print People.getCountry()
总结
从类⽅法和实例⽅法以及静态⽅法的定义形式就可以看出来,类⽅法的第⼀个参数是类对象cls,那么
通过cls引⽤的必定是类对象的属性和⽅法;⽽实例⽅法的第⼀个参数是实例对象self,那么通过self引
⽤的可能是类属性、也有可能是实例属性(这个需要具体分析),不过在存在相同名称的类属性和实
例属性的情况下,实例属性优先级更⾼。静态⽅法中不需要额外定义参数,因此在静态⽅法中引⽤类
属性的话,必须通过类对象来引⽤

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 8岁骨龄11岁怎么办啊 13岁初中生有思想不听话怎么办 交朋友找对象喜欢颜值高的怎么办 儿子找对象不听父母怎么办 缺爱怎么办的搞笑回答 对象说有人追她怎么办 说了一句话媳妇非常生气怎么办 柔顺后头发太臭怎么办 积分兑换手机被骗了怎么办 老板对你的上级不满怎么办 如果老板不给工资怎么办 手机号码被标记为其他公司怎么办? 被标记为骚扰电话怎么办 手机被标记骚扰电话怎么办 360摄像头不支持5g怎么办 摄像头不支持5g网络怎么办 家里的wifi卡了怎么办 办信用卡没有座机号码怎么办 拨打电话时显示号码有误怎么办 个体营业执照怎么办企业支付宝 没满16岁怎么办电话卡 我的电话卡丢了怎么办 公司注销地税没有补齐怎么办 公司没有固定电话怎么办信用卡 申请信用卡公司没有固定电话怎么办 办理信用卡公司没有固定电话怎么办 江门市固话欠费停机后怎么办 物业交钥匙地面有裂缝怎么办 深圳交通卡丢了怎么办 没装etc走etc怎么办 找不到过敏源身体痒怎么办 微信客服电话打不通怎么办 华为手机网络信号不好怎么办 酷我好友动态加载不了怎么办? 米兔电话手表停机了怎么办 糖猫电话手表停机了怎么办 360电话手表停机了怎么办 小天才电话手表停机怎么办 移动手机卡不知道号码怎么办 天猫退款手机号换了怎么办 科目二考试脚抖怎么办