Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这是函数的良好实践吗?_Python_Python 3.x_Variables_Global Variables_Local Variables - Fatal编程技术网

Python 这是函数的良好实践吗?

Python 这是函数的良好实践吗?,python,python-3.x,variables,global-variables,local-variables,Python,Python 3.x,Variables,Global Variables,Local Variables,我正在进行我的第一个python编程。我没有电脑编程经验。我在函数中使用全局变量时遇到问题。所以我重新定义了它们 这是我的程序的顶部,在这里我定义了全局变量 #Define Global Variables segments = [] highscore = 0 currentscore = 0 delay = 0.2 level = 1 这里是我使用它们的函数之一。一切正常,但这被认为是坏习惯吗?我应该把它们作为论据传递出去吗?只是想知道这最好的方法是什么。我不想发布完整的代码,因为它只有2

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

这是我的程序的顶部,在这里我定义了全局变量

#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独有)

  • 尽可能避免易变性
  • 尽可能避免使用全局变量(常数可以)
对于您的case pass参数,如果需要,返回值

编码最佳实践(并非python独有)

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

对于您的case pass参数,如果需要,请返回值

我认为您只需要在更改全局变量时使用global关键字。在学校里,我被教导将全局数和常数都大写。这看起来更适合于不,不是。请参阅和。@buran当建议用户在CR上发表文章时,如果还有“请阅读相关帮助中心页面,如”“和”“之类的建议,那就太好了。”。在当前表单中,上面的代码可能会被关闭为主题外的代码,因为它缺少上下文-因此用户可以提供足够的上下文。我认为您只需要在更改全局变量时使用global关键字。在学校里,我被教导将全局数和常数都大写。这看起来更适合于不,不是。请参阅和。@buran当建议用户在CR上发表文章时,如果还有“请阅读相关帮助中心页面,如”“和”“之类的建议,那就太好了。”。在当前表单中,上面的代码可能会被关闭,因为它缺少上下文-因此用户可以提供足够的上下文。感谢您的回复。你说的可变性是什么意思?我需要学习如何使用参数和返回值。回到youtube,哈哈!易变性是在初始化后改变变量值。这对于并行性非常重要,对于意外的结果(如果使用全局变量),感谢您的响应。你说的可变性是什么意思?我需要学习如何使用参数和返回值。回到youtube,哈哈!易变性是在初始化后改变变量值。这对于并行性和意外结果(如果使用全局变量)非常重要