您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

Python中的静态方法与类成员

2024/4/19 19:29:45发布6次查看
前言
因为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() #实例调用类方法,输出结果:类方法,类:<class '__main__.example'>,val1:value 1,无法访问val2的值 example.classmd() #类调用类方法,输出结果:类方法,类:<class '__main__.example'>,val1:value 1,无法访问val2的值 example.val1 = the instance value1 changed example.classmd() #类调用类方法,输出结果:类方法,类:<class '__main__.example'>,val1:value 1,无法访问val2的值 example.val1 = the class value2 changed example.classmd() #类调用类方法,输出结果:类方法,类:<class '__main__.example'>,val1:the class value2 changed,无法访问val2的值 example.classmd() #类调用类方法,输出结果:类方法,类:<class '__main__.example'>,val1:the class value2 changed,无法访问val2的值
相信从上面的例子中,就可以很明显地分辨出静态方法和类方法的区别了。
先是在语法上面的区别:
静态方法不需要传入self参数,类成员方法需要传入代表本类的cls参数;
静态方法是无妨访问实例变量和类变量的,类成员方法无法访问实例变量但是可以访问类变量
使用的区别:
由于静态方法无法访问类属性,实例属性,相当于一个相对独立的方法,跟类其实并没有什么关系。这样说来,静态方法就是在类的作用域里的函数而已。
更多python中的静态方法与类成员。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录