python - 为什么我会得到这个:“TypeError:myfunc() 只需要 1 个参数(给定 0)”?
问题描述
我想要做的是当字典this_dict
被调用时,它应该执行myfunc
它检查函数被调用的次数并在这方面改变输出。
虽然每当我执行它时,我都会收到错误TypeError: myfunc() takes exactly 1 argument (0 given)
。我不确定为什么会这样。
class A(object):
this_dict = {}
def get_response(self, request):
response = self.this_dict[request]
if callable(response):
response = response(self, request)
print response
class B(A):
b= 'b'
c= 'c'
tries = 1
def myfunc(self):
self.tries += 1
if self.tries < 3:
return self.b
else:
return self.c
this_dict = {
'a': myfunc(),
'd': 'some_string1',
'e': 'some_string2',
'f': 'some_string3',
}
b = B()
b.get_response('a')
解决方案
我认为这是正确的做法。定义时,def myfunc()
我需要包含self
andrequest
作为该方法的参数。它对我有用:
class A(object):
this_dict = {}
def get_response(self, request):
response = self.this_dict[request]
if callable(response):
response = response(self, request)
print response
class B(A):
b= 'b'
c= 'c'
tries = 1
def myfunc(self, request):
self.tries += 1
if self.tries < 3:
return self.b
else:
return self.c
this_dict = {
'a': myfunc,
'd': 'some_string1',
'e': 'some_string2',
'f': 'some_string3',
}
b = B()
b.get_response('a')
推荐阅读
- c# - 搜索文本格式,First Upper,Rest Lower
- c# - 如何处理一个类的不同版本?
- ios - 从方法 startDownloadingUbiquitousItem 下载的文件是哪个文件夹?
- azure-storage - 将数据从 Azure 备份(恢复服务保管库)复制/移动到常规存储帐户?
- bash - 如何在bash中动态构建包含空格的参数
- java - 使用 wasnull() 在 java 结果集中处理 null
- powerbi - 当外键在 JSON 数组中时,在 PowerBI 中建立一对多关系?
- javascript - 如何更改特定媒体查询的 CSS 类属性值?
- kdb - 我可以创建一个值为列表的字典吗
- git - Azure devops 错误:Git 签出失败,退出代码:1