我应该在什么时候使用library.function()(对于给定的库及其函数),而不仅仅是function(),使用Python库

2024-05-01 21:43:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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

我在其他类似的代码中遇到过这种困惑;有时在函数之前使用库名称,有时不使用,因此上面的代码只是一个示例,说明我对该主题的一般无知

欢迎对我可以了解这方面的任何解释或指导

干杯


Tags: 函数run代码fromimportsizedefsetup
1条回答
网友
1楼 · 发布于 2024-05-01 21:43:17

当您这样做时:

from p5 import setup, draw, size, background, run

名称setupdraw等被添加到全局命名空间,并绑定到适当的库函数/对象(即来自p5库的函数/对象)

但在此之后,当这些线路运行时:

def setup():
...
def draw():

名称setup&draw被更改为指向您刚刚定义的函数,因此它们不再绑定到p5库对象

由于名称不明确,脚本可能会出错。但是,您的脚本应该可以,因为这些重新定义的名称似乎没有在任何地方使用

使用p5.前缀只会消除这种混乱&;解决了这个问题

如果库导出的名称是泛型的,如setupdraw等,或者如果名称与您自己的名称/其他库导出的名称冲突,则最好使用library.前缀

相关问题 更多 >