我正在尝试通过python作业,因为我已经知道java和C#,并设法通过我的AP计算机科学分数放置在我的大学的python类中。
这是我创建的SetTitle函数。 Write函数已在给定的类中实现。
class HTMLOutputFile:
def SetTitle( title ):
if not str(title):
return false
else:
Write("<TITLE>",title,"<TITLE>")
return true
此文件正在调用我的SetTitle方法以确保其正常工作。
from htmloutputfile import *
import random
MyHTMLOutputFile = HTMLOutputFile()
if MyHTMLOutputFile.SetTitle(random.randint(1,100)):
print('Error: SetTitle accepted non-string')
exit(0)
if not MyHTMLOutputFile.SetTitle('My Title'):
print('Error: SetTitle did not accept string')
exit(0)
但是,当我运行它时,我收到错误
if MyHTMLOutputFile.SetTitle(random.randint(1,100)):
TypeError: SetTitle() takes exactly 1 argument (2 given)
你们有没有想过为什么random.randint(1,100)可能被认为是两个参数而不是1?如果你不想把它给我,我不需要直接修复,但我想在正确的方向上找点。
感谢。
答案 0 :(得分:3)
变化
def SetTitle( title ):
到
def SetTitle(self, title ):
每个类方法必须具有调用该方法的实例的第一个参数。它认为这是两个参数,因为它会自动将self传递给函数。
答案 1 :(得分:0)
randint
只生成一个值,但由于这是该类的方法,因此需要使用self
作为第一个参数 -
class HTMLOutputFile:
def SetTitle(self, title):
if not str(title):
return false
else:
Write("<TITLE>",title,"<TITLE>")
return true
还要注意几个方面 - 该方法需要在类中缩进。 python使用True
和False
(注意大小写)