Python 2.7.17 错误:语法错误:默认参数后跟非默认参数



我在PYTHON 2.7.17中编写了以下代码:

class prt(object):
def _print(self, x):
self.x = x
print x
def Write_turtle(self, shape, move=False, text_of_show, font=('Arial', 16, 'bold')):
try:
x.shape(shape)
x.write(text_of_show, move, font)
except:
from turtle import *
x = Turtle()
x.shape(shape)
x.write(text_of_show, move, font)

它在第 5 行末尾给了我这个错误:

SyntaxError: non-default argument follows default argument

谁能帮我? 谢谢。

在你定义Write_turtle参数movefont有 默认参数。正如错误消息告诉您的那样,您必须将它们放置 在参数列表的末尾,例如:

def Write_turtle(self, shape, text_of_show, move=False, font=('Arial', 16, 'bold'))

原因是,这些参数是可选的。如果未设置它们,则使用默认值。由于text_of_show没有默认参数,因此始终必须对其进行设置。这也意味着,您必须在它之前为所有参数提供一个值。因此,move的默认值已过时。如果您致电例如

Write_turtle((20, 10), True)

解释器不会知道Truemove的值还是text_of_show的值。如果如上所述正确重新排列参数,则可以调用:

Write_turtle((20, 10), True)
Write_turtle((20, 10), False, True)

第一个版本设置move=False(其默认值(,第二个版本设置move=True

欲了解更多信息,请查看此内容!

最新更新