我对Python和面向对象编程非常陌生。我正在执行使用p5库的this tutorial
本教程发布的代码如下所示:
from p5 import setup, draw, size, background, run
import numpy as np
from boid import Boid
width = 1000
height = 1000
def setup():
#this happens just once
size(width, height) #instead of create_canvas
def draw():
#this happens every time
background(30, 30, 47)
run()
但是当我尝试运行它时,除非我将“p5.”放在函数background()
、size()
和run()
之前,否则会发生各种错误:
... p5.size()
... p5.background()
... so on
我在其他类似的代码中遇到过这种困惑;有时在函数之前使用库名称,有时不使用,因此上面的代码只是一个示例,说明我对该主题的一般无知
欢迎对我可以了解这方面的任何解释或指导
干杯
当您这样做时:
名称
setup
、draw
等被添加到全局命名空间,并绑定到适当的库函数/对象(即来自p5
库的函数/对象)但在此之后,当这些线路运行时:
名称
setup
&draw
被更改为指向您刚刚定义的函数,因此它们不再绑定到p5
库对象由于名称不明确,脚本可能会出错。但是,您的脚本应该可以,因为这些重新定义的名称似乎没有在任何地方使用
使用
p5.
前缀只会消除这种混乱&;解决了这个问题如果库导出的名称是泛型的,如
setup
、draw
等,或者如果名称与您自己的名称/其他库导出的名称冲突,则最好使用library.
前缀相关问题 更多 >
编程相关推荐