Python:为什么random.randint(1,100)返回两个值?

时间:2015-02-26 22:16:56

标签: python

我正在尝试通过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?如果你不想把它给我,我不需要直接修复,但我想在正确的方向上找点。

感谢。

2 个答案:

答案 0 :(得分:3)

变化

def SetTitle( title ):

def SetTitle(self, title ):

每个类方法必须具有调用该方法的实例的第一个参数。它认为这是两个参数,因为它会自动将self传递给函数。

What is the purpose of 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使用TrueFalse(注意大小写)