Python中文
首页
教程
问答
标签
搜索
登录
注册
函数中python“self”参数的一个问题
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>这是一个简单测试的代码:</p> <pre><code>class ECollector: #error msg collector #this class should be used as 'global' msgs = [] def addmsg(self,msg): self.msgs.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(msg) def clear(self): self.msgs = [] class test(ECollector): dcodes = [] ECollector def new(self): ECollector.addmsg("test!") </code></pre> <p>这是我在python控制台上运行的 (顺便说一句,我使用的是pyscripter2.3和python3.12)</p> ^{pr2}$ <p>我得到的是:</p> <pre><code>Traceback (most recent call last): File "<interactive input>", line 1, in <module> File "C:\...\test.py", line 14, in new ECollector.addmsg("test!") TypeError: addmsg() takes exactly 2 positional arguments (1 given) </code></pre> <p>我是python的新手…我对这整件事很困惑;;; 我认为“self”参数在调用def函数时不需要填充。在</p> <p>请把这个可怜的新手从这个麻烦的“现象”中解救出来,给他一些解决办法。 谢谢:)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您调用<code>ECollector.addMsg</code>的方式看起来像是将其用作python静态方法,这意味着它不会传递“self”参数(如果您是编程语言的新手,并且不了解什么是静态方法,请告诉我)。但是,我的猜测是您希望将它用作实例方法而不是静态方法。在</p> <p>相反,您可能希望按以下方式执行:</p> <pre><code>self.addmsg("test!") </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
3 回答
如何添加表示整数的擦边字符串?
4 回答
如何添加要在Bokeh中使用的新font.ttf文件?
9 回答
如何添加要显示的矩阵XY轴编号和XY轴
10 回答
如何添加计数?
1 回答
如何添加计数器函数?
8 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
2 回答
如何添加计数器来跟踪while循环中的月份和年份?
7 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
2 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
5 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
9 回答
如何添加评论拉梅尔亚姆
6 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
9 回答
如何添加谷歌地点自动完成到Flask?
3 回答
如何添加超时、python discord bot
8 回答
如何添加超过1dp的检查
2 回答
如何添加距离方法
6 回答
如何添加跟随游戏的敌人精灵
9 回答
如何添加路径以便python可以找到程序?
3 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答