我目前正在做一个小程序。该应用程序的一个要求是,我声明一个空列表,并将该列表作为参数传递给另一个函数。这段代码可以正常工作,但是,我想知道是否有更有效或更好的方法来完成这个任务。
def main():
HourlyTemperatures = []
GetTemperatures(HourlyTemperatures)
def GetTemperatures(HourlyTemperatures):
for hour in range(0, 24):
temps = input('Enter temperature value for hour %d: ' % (hour))
HourlyTemperatures.append(temps)
print(HourlyTemperatures)
if __name__ == "__main__":
main()
理想情况下,我认为为了可读性(至少对我来说,我还是个初学者!),代码应该是这样的。
def main():
HourlyTemperatures = []
GetTemperatures(HourlyTemperatures)
def GetTemperatures():
for hour in range(0, 24):
temps = input('Enter temperature value for hour %d: ' % (hour))
HourlyTemperatures.append(temps)
print(HourlyTemperatures)
if __name__ == "__main__":
main()
如果我不使用GetTemperatures函数的参数,我的代码就无法运行,我不明白为什么或者如何达到更理想的结果。
我的做法是否正确,或者是否有更好的方法?
我想你需要的是这样的东西。
def main():
GetTemperatures()
def GetTemperatures(HourlyTemperatures=None):
if not HourlyTemperatures:
HourlyTemperatures = []
for hour in range(0, 24):
temps = input('Enter temperature value for hour %d: ' % (hour))
HourlyTemperatures.append(temps)
print(HourlyTemperatures)
if __name__ == "__main__":
main()
它可以让你不把参数传给... GetTemperature
(在这种情况下,缺省的,其值为 []
将被使用),这在功能上等同于你现在的。
请看 这个问题 为了解释为什么我使用
if not HourlyTemperatures:
HourlyTemperatures = []
因为习惯的原因,我会把变量名写得小一点,但这是题外话。