아마도 간단한 문제에 봉착했습니다. 함수를 사용하여 선택하면 모든 것이 실행되는 것처럼 보입니다. 예 :이 스크립트를 실행하는 경우나열된 모든 함수 호출을 실행하는 임의 선택 Python
from ordereddict import OrderedDict
from random import choice
def PrintStrings():
Text = choice(["Gutentag!", "Ni hao!", "Hola!"])
print "Chosen Text is:", Text
return Text
class Greeting():
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"]: PrintStrings()},
{self.fields["Afternoon"]: PrintStrings()},
{self.fields["Evening"]: PrintStrings()},
]
result = {}
for i in range(n):
result.update(choice(function))
print "Updated string:",result
return result
text = Greeting()
text.change()
text.changerandom()
, 내가있는 동안은 안 실행 3
{self.fields["Morning"]: PrintStrings()},
{self.fields["Afternoon"]: PrintStrings()},
{self.fields["Evening"]: PrintStrings()},
얻을. 이 스크립트는 반환
Chosen Text is: Ni hao!
Chosen Text is: Gutentag!
Chosen Text is: Hola!
Updated string: {'Good morning!': 'Hola!'}
예상 결과는 다음과 같습니다
Chosen Text is: Hola!
Updated string: {'Good morning!': 'Hola!'}
'{self.fields [ "Morning": PrintStrings()}'를 쓸 때'PrintStrings()'를 호출합니다. 'function'리스트 생성의 전체가 수행됩니다. – njzk2
BTW - 현재'Text'라고 불리는 변수는 대신'text'라고 명명되어야합니다; [PEP-8, Python 스타일 가이드] (https://www.python.org/dev/peps/pep-0008/)를 참조하십시오. –