在python中,从主函数中传递一个空列表的正确方法是什么?

问题描述 投票:-1回答:1

我目前正在做一个小程序。该应用程序的一个要求是,我声明一个空列表,并将该列表作为参数传递给另一个函数。这段代码可以正常工作,但是,我想知道是否有更有效或更好的方法来完成这个任务。

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函数的参数,我的代码就无法运行,我不明白为什么或者如何达到更理想的结果。

我的做法是否正确,或者是否有更好的方法?

python
1个回答
1
投票

我想你需要的是这样的东西。

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 = []

因为习惯的原因,我会把变量名写得小一点,但这是题外话。

© www.soinside.com 2019 - 2024. All rights reserved.