Python 需要帮助调用方法吗

Python 需要帮助调用方法吗,python,class,methods,Python,Class,Methods,嘿,我对Python和编程都是新手。我正在为学校做一个项目,我必须让一个NPC说出我给他说的一行随机代码。我的教授给了我们一些代码行,我们必须自己填写几行。但是,我很难让程序在windows powershell上显示任何文本。我在这个网站上看过很多教程,根据它们,我做的每件事都是正确的。谁能告诉我我做错了什么,为什么做错了 from random import randint class NPC (object): def __init__(self,name, phrases):

嘿,我对Python和编程都是新手。我正在为学校做一个项目,我必须让一个NPC说出我给他说的一行随机代码。我的教授给了我们一些代码行,我们必须自己填写几行。但是,我很难让程序在windows powershell上显示任何文本。我在这个网站上看过很多教程,根据它们,我做的每件事都是正确的。谁能告诉我我做错了什么,为什么做错了

from random import randint
class NPC (object):
    def __init__(self,name, phrases):
        self.__name = name
        self.__phrases = #Your code here

    def getDescription(self):
        return self.__description

    def add_phrase(self, phrase):
        #your one line of code here to add a phrase to the phrases an NPC can say

    def getPhrases(self):
        return self.__phrases

    def speak(self):
        #Your code here, no more than 2 lines to select a phrase at random and
        #return it

    def __str__(self):
        return "Good day, I am " + self.__name
这是作为模板提供给我们的

到目前为止,我得到的是

from random import randint
class NPC (object):
def __init__(self,name, phrases):
    self.__name = name
    self.__phrases = ['Today is Tuesday', 'Today is Wednesday', 'Today is Thursday', 'Today is Friday']

def getDescription(self):
    return self.__description

def add_phrase(self, phrase):
    return "Howdy"

def getPhrases(self):
    return self.__phrases

def speak(self):
    for i in self.__phrases:
        return randint

def __str__(self):
    return "Good day, I am " + self.__name

c = NPC()
c.speak()

此外,我应该在speak函数下添加什么,以便它随机返回其中一个短语?

试试这个,看看我所做的更改:

from random import randint

class NPC (object):

    def __init__(self,name, phrases):
        self.__name = name
        self.__phrases = phrases

    def getDescription(self):
        return self.__description

    def add_phrase(self, phrase):
        return "Howdy"

    def getPhrases(self):
        return self.__phrases

    def speak(self):
        rand = randint(0,len(self.__phrases)) #Selecting a random phrase
        print(self.__phrases[rand])


    def __str__(self):
        return "Good day, I am " + self.__name


name = "Stranger"
# Initializing phrase list and then passing it as an argument to the constructor.
phrases = ['Today is Tuesday', 'Today is Wednesday', 'Today is Thursday', 'Today is Friday']

c = NPC(name, phrases)
c.speak()
其中一项产出是:

今天是星期三

你的教授给你的变量名称开头带有_uu?我不确定是否应该使用StackOverflow来解决家庭作业。但当然,学习和理解这个问题是好的。你说什么也不显示。那么问题是什么会让事情出现?仅仅返回一个值通常不会显示任何内容(忽略Jupyter之类的内容)。
print
语句可以。这个问题对于堆栈溢出来说太广泛了。基本上是要求我们完成你的任务。我正在寻找证据证明您理解这个赋值,并且您理解基本的Python语法,但我没有看到。所以我也不相信堆栈溢出的答案会被理解。在你的位置上,我要做的是学习基本的Python教程。他们在网上一文不值。那是你应该开始的地方。恐怕这里没有捷径。我喜欢你所做的,而且它是有效的,但是有没有办法让短语在构造函数下而不是在构造函数外部,并以同样的方式工作呢?想当然地,首先给出的代码,你可以在构造函数中做类似的事情:
phrases=[‘今天是星期二’、‘今天是星期三’、‘今天是星期四’、‘今天是星期五’]
然后是
self.\uu phrases=phrases
。但我看不出有任何理由这样做,因为你的课将失去灵活性。