百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

自动化利器Python类实例方法、静态方法和类方法的区别和用法

off999 2024-09-20 22:49 13 浏览 0 评论

带你走进 @ 机器人时代

Discover 点击上面蓝色文字关注我们


Python类
中对类的方法分为:静态方法、类方法和实例方法三种,采用 @classmethod 修饰的方法为类方法;采用 @staticmethod 修饰的方法为静态方法;不用任何修改的方法为实例方法。

下面这段代码是实例方法:

class qt:
    def __init__(self):
        e=9
    def saw(self):
        print('这是一个实例方法')
s=qt()
s.saw() #类直接调用实例方法
qt.saw(s) #类名调用实例的方法,需要传值
运行结果:
这是一个实例方法
这是一个实例方法


采用@classmethod修饰的方法为类方法,看下面的代码:

#类方法
class qt:
    def __init__(self):
        e=9
    @classmethod  #类方法
    def saw(cls): #约定俗成变量命名方式
        print('这是一个类方法',cls)
qt.saw()
显示结果:
这是一个类方法 <class '__main__.qt'>


采用@staticmethod来修饰的方法为静态方法,其实就是一个定义在类名空间里面的函数,我们来测试一下:

#静态方法
class qt:
    def __init__(self):
        self.e=9
    @staticmethod  #静态方法
    def saw(): #约定俗成变量命名方式
        print('这是一个静态的方法')
qt.saw()
print(qt.e)

运行结果:
这是一个静态的方法
Traceback (most recent call last):
  File "E:\Python程序\类的演示.py", line 81, in <module>
    print(qt.e)
AttributeError: type object 'qt' has no attribute 'e'

使用静态方法的时候,其实相当于一个函数了,self.e这个变量就不存在了,因此调用就会出错。

实际工作中,实例的方法比较常见,但如果用下面的方法调用,则会出错:

class tru_op:
    def yt(self):
        print('我是李老师')
tru_op.yt()
运行结果:
Traceback (most recent call last):
  File "E:\Python程序\类的演示.py", line 87, in <module>
    tru_op.yt()
TypeError: tru_op.yt() missing 1 required positional argument: 'self'


为什么会这样?最后一行信息提示缺少self参数传值,直接调用的时候没有给self传值,那么修改代码如下:

tu=tru_op()
tru_op.yt(tu)#通过手动给类对象yt传值
运行结果:
我是李老师


或者我们可以用tru_op.yt(None)这样的方式,哪怕传一个空值(如果函数不需要传值的情况下),得到的运行结果都是正常的,如果函数需要传值,那就必须传值。

Python 中允许使用类名直接调用实例方法,但必须手动为该方法的第一个 self 参数传递参数,这种调用方法的方式被称为“非绑定方法”。

用类的实例对象访问类成员的方式称为绑定方法,而用类名调用类成员的方式称为非绑定方法。

坚持学习,这样每天都能进步一点点!!

往期回顾:

  • 来来来,送你一个金牌销售机器人,7X24小时不休,不要工资免费用!
  • RPA技术在旅行社销售业务中如何凤凰涅槃??
  • 【工资翻三倍】系列:一招搞定九宫图片切割机器人,让你的朋友圈更加炫酷!


本文引用和摘录相关内容,请联系侵删。

- END -


最后,文章有帮助到你的话点赞在看
励我们分享更多的干货!

相关推荐

Python自动化脚本应用与示例(python自动化脚本教程)

Python是编写自动化脚本的绝佳选择,因其语法简洁、库丰富且跨平台兼容性强。以下是Python自动化脚本的常见应用场景及示例,帮助你快速上手:一、常见自动化场景文件与目录操作O批量重命名文件...

如何使用Python实现一个APP(如何用python做一个程序)

要使用Python实现一个APP,你可以选择使用一些流行的移动应用开发框架,如Kivy、PyQt或Tkinter。这里以Kivy为例,它是一个跨平台的Python框架,可以用于创建漂亮的图形用户界面(...

免费定时运行Python程序并存储输出文档的服务推荐

免费定时运行Python程序并存储输出文档的服务推荐以下是几种可以免费定时运行Python程序并存储输出结果的云服务方案:1.PythonAnywhere特点:提供免费的Python托管环境支持定时...

【Python程序开发系列】如何让python脚本一直在后台保持运行

这是我的第385篇原创文章。一、引言让Python脚本在后台持续运行,有几种常见的方式,具体方式可以根据你的系统环境和需求选择。二、Linux或macOS系统2.1使用nohup命令no...

运行和执行Python程序(运行python的程序)

一、Python是一种解释型的脚本编程语言,这样的编程语言一般支持两种代码运行方式:交互式编程在命令行窗口中直接输入代码,按下回车键就可以运行代码,并立即看到输出结果;执行完一行代码,你还可以继续...

Python 初学者指南:计算程序的运行时长

在编写Python程序时,了解程序的运行时长是一项很有用的技能。这不仅能帮助你评估代码的效率,还能在优化程序性能时提供关键的数据支持。对于初学者来说,计算程序运行时长其实并不复杂,接下来就让我们看...

pyest+appium实现APP自动化测试,思路全总结在这里

每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥聊软件测试01appium环境搭建安装nodejshttp://nodej...

血脉觉醒后,编程小白我是如何通过Deepseek和Trae轻松开发软件的

以下就是作为一个编程小白的我,是如何一步步开发软件的保姆级教程,请点赞收藏:第一步:打开#deepseek#(首先关闭深度思考和联网搜索)输入或复制你要让它做一个什么样软件的要求和提示词(你可以先用...

我用Deepseek+Trae写的python小软件,小白也能轻松用上模型啦!

利用AI大模型deepseek,搭配TraeCN,用半个小时做了一个本地Ollama安装部署和一键卸载的小工具,哈哈哈!感觉还不错#deepseek#一直想做一个本地Ollama安装部署和一键卸载...

在安卓设备上运行Python的方法(安卓能运行python吗)

技术背景在安卓设备上运行Python可以为开发者提供更多的开发选择和灵活性,能够利用Python丰富的库和简洁的语法来开发各种应用,如游戏、脚本工具等。然而,由于安卓系统原生不支持Python,需要借...

零基础小白,DeepSeek全自动编程,超详细提示词,一键生成软件!

我前面发表了文章,详细说了编程零基础小白,如何利用DeepSeek进行编程的全过程,感兴趣的可以去看看:DeepSeek全自动编程很多人不会写提示词,不知道怎么开始对话。话不多说,请先看下图中的对话,...

小白用DeepSeek+Python编写软件(用python制作软件)

周末无事,用DeepSeek生成全部代码,写了一个mp3音乐播放器,几分钟搞定,DeepSeek确实太强大了。我的提示语是这么写的:“请用Python语言写一个音乐播放器,支持常见音乐格式,我是Pyt...

零基础使用DeepSeek开发Windows应用程序,超简单超实用!

你敢相信,我居然用DeepSeek开发了一个能用的Windows软件!整个过程就像和学霸同桌组队做作业,我负责提需求,DeepSeek负责写代码改bug,全程碰到任何问题直接丢给DeepSeek即可。...

第二篇:如何安装Python并运行你的第一个程序

欢迎回到我的Python入门教程系列!在上一篇中,我们讨论了为什么Python是一门值得学习的编程语言。今天,我们将迈出第一步:安装Python并运行你的第一个程序。无论你是Windows、macOS...

Python 运行,带你找入口,快速读懂程序

有C或Java编程开发经验的软件开发者,初次接触python程序,当你想快速读懂python项目工程时,是否觉得python程序有些太过随意,让你看有些无所适从,进而有些茫然。这是...

取消回复欢迎 发表评论: