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