Python调用类内printingpress方法提示缺少keywords参数如何解决
错误原因
你报错的核心原因是没有使用类的实例调用实例方法,而是直接用类名调用了实例方法。
Python的类实例方法第一个参数self默认会自动接收调用该方法的实例对象,你直接用类名调用时,self参数需要手动传入。你仅传了hashtags[0],这个值会被赋值给self参数,方法要求的keywords参数就没有接收到传入值,因此触发参数缺失报错。
修复方案
方案1(推荐):保存类实例后通过实例调用方法
你之前创建实例的代码learning(username, password)没有赋值给变量保存,修改为如下写法即可:
from time import sleep from secrets import password, username hashtags = [ 'Modeling', 'Fitness', 'Travel' ] class learning: def __init__(self, username, password): print(username, password) sleep(2) def printingpress(self, keywords): print(keywords) # 创建类实例并保存到变量中 my_learning = learning(username, password) # 通过实例调用方法,self会自动传入,只需传keywords参数 my_learning.printingpress(hashtags[0])
该写法符合Python面向对象编码的常规逻辑,推荐优先使用。
方案2:手动传入self参数
如果需要直接用类名调用方法,需要手动传入一个类实例作为self参数:
# 先创建类实例 my_learning = learning(username, password) # 调用时第一个参数传实例,第二个参数传keywords learning.printingpress(my_learning, hashtags[0])
该写法仅适用于特殊场景,不推荐日常编码使用。
内容的提问来源于stack exchange,提问作者RGB Engineer
相关产品推荐
相关产品推荐

