我正在尝试执行一个脚本来选择一个字符串并更新一个当前字段,但是由于某些原因,在调用Greeting
类中的changerandom
函数时,代码没有更新最后一个值
...[snip]...
class Greeting(Packet):
fields = OrderedDict([
("Morning", "Hi"),
("Afternoon", "Good Afternoon!"),
("Evening", "Good Evening!"),
])
def change(self):
self.fields["Morning"] = "Good morning!"
def changerandom(self, n = 1):
function=[
{self.fields["Morning"]: "Hello!"},
{self.fields["Morning"]: "Bonjorno!"},
{self.fields["Morning"]: "Hola!"},
]
result = {}
for i in range(n):
result.update(choice(function))
print "Updated string:",result
return result
text = Greeting()
print text
text.change()
print text
text.changerandom()
print text
我的代码返回以下内容:
Hi
Good morning!
Updated string: {'Good morning!': 'Hola!'}
Good morning!
虽然它应该回来:
Hi
Good morning!
Hola!
我不确定我在这里遗漏了什么,我不明白为什么我不能更新最后一个字段。 任何帮助都将不胜感激
问题是你在
return
生成一个结果,而不在任何地方赋值您还可以使用
fields
的值,而不是键。所以,你的代码应该是请注意,我们正在使用
self.fields.update
,并且不再return
任何东西通常情况下,函数和方法返回某个内容或更改某个内容是一种很好的做法,但决不能两者兼而有之
相关问题 更多 >
编程相关推荐