gpt4 book ai didi

python - pygame.display.set_mode().fill((0, 200, 255)) 中的 fill()

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:28 27 4
gpt4 key购买 nike

考虑 pygame 循环中的这一行:

pygame.display.set_mode().fill((0, 200, 255))

发件人:http://openbookproject.net/thinkcs/python/english3e/pygame.html

我。你怎么知道 set_mode 中嵌套了一个填充函数?我在 pygame 文档中搜索,没有关于填写 set_mode 部分的信息。

二。 set_mode()是pygame包的显示模块的函数。如何调用嵌套在另一个函数中的函数?我怎么能用这个函数调用 print"hi"(试过但得到一个 AttributeError):

def f():
def g():
print "hi"

最佳答案

pygame.display.set_mode() 返回一个 Surface 对象。

来自documentation :

pygame.display.set_mode initialize a window or screen for display pygame.display.set_mode(resolution=(0,0), flags=0, depth=0): return Surface

所以您是在表面对象上调用方法 .fill(),而不是在函数 set_mode() 上。

您可以在 surface documentation 中找到表面对象可用的方法pygame 的。

您不能以这种方式调用嵌套函数。要在打印示例中获得所需的结果,您可以按以下方式使用类:

class F():
def g(self):
print "hi"

导致:

>>> F().g()
hi

这是一个简化的示例,展示了 display.set_mode().fill() 的工作原理:

class Surface():
def fill(self):
print "filling"

class Display():
def set_mode(self):
return Surface()


Display().set_mode().fill()

编辑:

您可以使用嵌套函数,但它的工作方式与您使用对象和模块的方式略有不同:

def f():
def g():
print "hi"
return g

导致:

>>> outerf = f()
>>> outerf()
hi

关于python - pygame.display.set_mode().fill((0, 200, 255)) 中的 fill(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10074807/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com