python实例成员与类成员的作用区别_关于静态与类成员的实例详解(python)

这篇文章主要介绍了关于Python中静态方法与类成员的相关资料,文中通过示例代码给大家详细总结了两者在语法和使用上的区别,有需要的朋友可以参考借鉴,下面来一起看看吧。

前言

因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目。对Python中的类,类之间的组织关系,整个项目中类之间如何耦合还缺乏认识。打算读一读别人写的Python代码来学习一下Python在工程中的应用,提升自己的技术水平。选取的Python代码是Python爬虫代码,github地址。这个代码刚好是符合跳出我的舒适区的水平的代码,因此很适合我目前的水平来学习。

在Python2.4之后,主要使用装饰器来实现静态方法和类方法。

装饰器使用@操作符,例子如下:class Example:

val1 = "Value 1"

def init(self):

self.val2 = "Value 2"

@staticmethod

def staticmd():

print("静态方法,无法访问Value1和Value2")

@classmethod

def classmd(cls):

print('类方法,类:'+str(cls)+",val1:"+cls.val1+",无法访问val2的值")

example = Example()

example.staticmd() #实例调用静态方法,无法访问实例变量val1和val2

example.classmd() #实例调用类方法,输出结果:类方法,类:,val1:Value 1,无法访问val2的值

Example.classmd() #类调用类方法,输出结果:类方法,类:,val1:Value 1,无法访问val2的值

example.val1 = "The instance value1 changed"

example.classmd() #类调用类方法,输出结果:类方法,类:,val1:Value 1,无法访问val2的值

Example.val1 = "The class value2 changed"

example.classmd() #类调用类方法,输出结果:类方法,类:,val1:The class value2 changed,无法访问val2的值

Example.classmd() #类调用类方法,输出结果:类方法,类:,val1:The class value2 changed,无法访问val2的值

相信从上面的例子中,就可以很明显地分辨出静态方法和类方法的区别了。

先是在语法上面的区别:静态方法不需要传入self参数,类成员方法需要传入代表本类的cls参数;

静态方法是无妨访问实例变量和类变量的,类成员方法无法访问实例变量但是可以访问类变量

使用的区别:

由于静态方法无法访问类属性,实例属性,相当于一个相对独立的方法,跟类其实并没有什么关系。这样说来,静态方法就是在类的作用域里的函数而已。

【相关推荐】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值