Вы должны назначить данные, прежде чем сможете их использовать. Хитрость заключается в том, чтобы поместить то, что у вас есть в if __name__==__main__
, в функцию в верхней части кода. Затем вы можете поместить весь хороший код в эту функцию, добавить большой шарик уродства и поместить очень простой if
внизу. К тому времени, когда вызывается main()
, переменная уже назначена, и все готово.
import sys # aren't saving anything by putting it in the `if`
def main():
[run the tests collecting output in a variable named output]
[compare output to expected_output]
expected_output = '''
(60-line literal that represents the correct output)'''
if __name__ == '__main__':
main()
@ tdelaney Вот небольшое украшение по вашему предложению.
def main(expected_output):
[run the tests collecting output in a variable named output]
[compare output to expected_output]
if __name__ == '__main__':
main(
'''
(60-line literal that represents the correct output)
'''
)