在尝试调用类中定义的函数时,我遇到了TypeError类的问题。错误是:TypeError: p() takes exactly 1 argument (2 given)
class HTMLGen:
def p(text):
return ("<p>%s</p>" % text)
def a(text):
return ("<a>%s</a>" % text)
def b(text):
return ("<b>%s</b>" % text)
def title(text):
return ("<title>%s</title>" % text)
def comment(text):
return ("<!--%s-->" % text)
def div(text):
return ("<div>%s</div>" % text)
def span(text):
return ("<span>%s</span>" % text)
def body(text):
return ("<body>%s</body>" % text)
然后,导入HTMLGen类并尝试以这种方式使用HTMLGen.p(t)
函数
>>> import htmlgen
>>> website = htmlgen.HTMLGen()
>>> paragraph = website.p("Hello World!")
然后按Enter键,我收到上述错误。有谁知道HTMLGen.p()和其他函数为什么会有多个参数,以及防止这种情况发生的最简单方法是什么?
答案 0 :(得分:0)
每当你在类中创建函数时,它必须在类中的所有函数中都有自变量。
class HTMLGen:
def p(self,text):
return ("<p>%s</p>" % text)
def a(self,text):
return ("<a>%s</a>" % text)
def b(self,text):
return ("<b>%s</b>" % text)
def title(self,text):
return ("<title>%s</title>" % text)
def comment(self,text):
return ("<!--%s-->" % text)
def div(self,text):
return ("<div>%s</div>" % text)
def span(self,text):
return ("<span>%s</span>" % text)
def body(self,text):
return ("<body>%s</body>" % text)
答案 1 :(得分:0)
您需要通过名为self的约定添加其他参数。它指的是对象本身。许多编程语言使用关键字this
代替。
def span(self, text):
return ("<span>%s</span>" % text)