【问题标题】:Is this a good practice with functions? [closed]这是函数的好习惯吗? [关闭]
【发布时间】:2021-03-15 22:39:46
【问题描述】:

我正在编写我的第一个 python 编程。我没有PC编程经验。我在函数中使用全局变量时遇到问题。所以我重新定义了它们。

这是我定义全局变量的程序顶部。

#Define Global Variables
segments = []
highscore = 0
currentscore = 0
delay = 0.2
level = 1

这是我使用它们的功能之一。一切正常,但这被认为是不好的做法吗?我应该将它们作为参数传递吗?只是想知道最好的过程是什么。我不想发布完整的代码,因为它只有 200 多行而且运行良好。

def gameover():
    global highscore
    global currentscore
    global delay
    global level
    time.sleep(1)
    if currentscore >= highscore:
        highscore = currentscore
        sethighscore()
    currentscore = 0
    head.goto(0,0)
    head.direction = "stop"
    for index in range(len(segments)):
        x = 1000
        y = 1000
        segments[index].goto(x,y)
    segments.clear()
    delay = 0.2
    level = 1

【问题讨论】:

标签: python python-3.x variables global-variables local-variables


【解决方案1】:

代码最佳实践(不是 python 独有的)。

  • 尽可能避免可变性
  • 尽可能避免使用全局变量(常量即可)

为您的案例传递参数,如果需要返回值

【讨论】:

  • 感谢您的回复。你所说的可变性是什么意思?我将需要学习如何使用参数和返回值。回到 YouTube 哈哈!
  • 可变性在初始化后改变变量值。这对于并行性和意外结果非常重要(如果您使用全局变量)
猜你喜欢
  • 2015-02-18
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 2016-06-27
  • 1970-01-01
  • 2020-11-06
  • 2014-08-11
相关资源
最近更新 更多