永发信息网

Python内部函数调用参数问题

答案:3  悬赏:20  手机版
解决时间 2021-03-17 17:44
  • 提问者网友:轻浮
  • 2021-03-17 07:14
class Tag(PageElement):

def _invert(self, h):
"Cheap function to invert a hash."
i = {}
for k,v in h.items():
i[v] = k
return i

XML_ENTITIES_TO_SPECIAL_CHARS = { "apos" : "'",
"quot" : '"',
"amp" : "&",
"lt" : "<",
"gt" : ">" }

XML_SPECIAL_CHARS_TO_ENTITIES = _invert(XML_ENTITIES_TO_SPECIAL_CHARS)

提示错误:
XML_SPECIAL_CHARS_TO_ENTITIES = _invert(XML_ENTITIES_TO_SPECIAL_CHARS)
TypeError: _invert() takes exactly 2 arguments (1 given)
应该怎么改啊?
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-03-17 08:06
要把变量初始化放到__init__里面
def __init__(self):
self.XML_SPECIAL_CHARS_TO_ENTITIES=self._invert(self.XML_ENTITIES_TO_SPECIAL_CHARS)
全部回答
  • 1楼网友:往事隔山水
  • 2021-03-17 09:50
分析如下: 1. 首先调用deco函数,打印三条语句,就是前三条 2. 因为deco函数有返回值,返回的是你传递的参数,也就是myfunc的引用。 3. 第10行的myfunc为你deco函数的返回值,也就是myfunc 4. 第11行调用的myfunc(),其实调用的是deco返回值的函数,也就是你传递的函数的引用。 如有不明白的地方,请继续追问!
  • 2楼网友:北城痞子
  • 2021-03-17 08:31
def _invert(self, h): XML_SPECIAL_CHARS_TO_ENTITIES = _invert(XML_ENTITIES_TO_SPECIAL_CHARS,XML_ENTITIES_TO_SPECIAL_CHARS) 你把def _invert(self, h)里面的self去掉试试 错误说的很清楚,你只给了一个值给自定义函数,就是这个错了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯