python求解
importturtlebob=turtle.Turtledefsquare(t):foriinrange(4):t.fd(100)t.lt(90)print(t)squ...
import turtlebob=turtle.Turtledef square(t): for i in range(4): t.fd(100) t.lt(90) print(t) square(bob)错误: Message=TypeError("forward() missing 1 required positional argument: 'distance'") Source=c:\users\97009\source\repos\pythonapplication5\pythonapplication5\pythonapplication5.py StackTrace: File "c:\users\97009\source\repos\pythonapplication5\pythonapplication5\pythonapplication5.py", line 6, in square t.fd(100) File "c:\users\97009\source\repos\pythonapplication5\pythonapplication5\pythonapplication5.py", line 10, in <module> square(bob)为啥画不出正方形
import turtle
bob=turtle.Turtle
def square(t):
for i in range(4):
t.fd(100)
t.lt(90)
print(t)
square(bob)
错误: Message=TypeError("forward() missing 1 required positional argument: 'distance'") 展开
import turtle
bob=turtle.Turtle
def square(t):
for i in range(4):
t.fd(100)
t.lt(90)
print(t)
square(bob)
错误: Message=TypeError("forward() missing 1 required positional argument: 'distance'") 展开
1个回答
展开全部
使用方式不对,turtle.Turtle是RawTurtle的子类,生成对象应该加(),正解应该是:
之所以出现你这几个错误的原因,也可以理解,forward()函数或者说fd函数的定义里是有两个参数的,(self,distance),self是默认调用这个方法的类对象自身,所以只需要传入一个distance参数即可,但是你在这个过程中没有正确的创建类对象,你可以比对bob=turtle.Turtle和bob=turtle.Turtle(),分别打印出bob查看。因此函数自然就把你传入的100作为self参数了。
那么为什么不加括号却不报错等等一系列追问,这就涉及到类的实例化的问题了,扯远了。反正你改过来就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询