详解Python中的静态方法与类成员方法

发布时间 - 2026-01-10 23:19:00    点击率:

前言

因为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中静态方法  # python  # 静态方法调用  # 类成员方法  # Python面向对象之静态属性、类方法与静态方法分析  # python中的实例方法、静态方法、类方法、类变量和实例变量浅析  # python的类方法和静态方法  # 浅谈python中的实例方法、类方法和静态方法  # Python实例方法、类方法、静态方法的区别与作用详解  # 深入解析python中的实例方法、类方法和静态方法  # Python探索之静态方法和类方法的区别详解  # Python3.0中普通方法、类方法和静态方法的比较  # Python 实例方法、类方法、静态方法的区别与作用  # Python 面向对象静态方法、类方法、属性方法知识点小结  # 无法访问  # 自己的  # 是在  # 好了  # 不需要  # 本类  # 组织关系  # 这篇文章  # 很明显  # 来实现  # 有什么关系  # 技术水平  # 写过  # 很适合  # 就可以  # 辨出  # 读一读  # 平时  # 就是在  # 在实际 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  网站建设要注意的标准 促进网站用户好感度!  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  iOS中将个别页面强制横屏其他页面竖屏  高端网站建设与定制开发一站式解决方案 中企动力  如何快速搭建安全的FTP站点?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何挑选高效建站主机与优质域名?  如何正确下载安装西数主机建站助手?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel如何与Inertia.js和Vue/React构建现代单页应用  bing浏览器学术搜索入口_bing学术文献检索地址  微信h5制作网站有哪些,免费微信H5页面制作工具?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  轻松掌握MySQL函数中的last_insert_id()  深圳网站制作平台,深圳市做网站好的公司有哪些?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  教你用AI将一段旋律扩展成一首完整的曲子  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在万网开始建站?分步指南解析  如何快速搭建高效香港服务器网站?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Android中AutoCompleteTextView自动提示  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  EditPlus 正则表达式 实战(3)  Thinkphp 中 distinct 的用法解析  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  如何利用DOS批处理实现定时关机操作详解  如何挑选优质建站一级代理提升网站排名?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?