Python传递对象函数和引用函数变量

2024-10-01 04:47:03 发布

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

假设我在python中使用OpenGL。你知道吗

经常打电话,例如

glutDisplayFunc(display)

其中display是您编写的函数。你知道吗

如果我有课怎么办

class foo:
    #self.x=5
    def display(self, maybe some other variables):
        #run some code
        print("Hooray!, X is:", self.x)

我想通过这个显示功能,让它打印“万岁!,X为:5“

我能把它当作

h = foo()
glutDisplayFunc(h.display)

这行吗?你知道吗


Tags: 函数runselffoodefdisplaycodesome
2条回答

是的,您可以这样调用函数:

h = foo()
glutDisplayFunc(h.display)

如果这是你的课:

class Foo():
  def __init__(self):
    self.x = 5
  def display(self):
    print("hooray {}".format(self.x))

这是你的glut_display_func()

def glut_display_func(func):
  func()

您可以这样做:

foo = Foo()
foo.display()

glut_display_func(foo.display)

得到同样的结果:

hooray 5
hooray 5

相关问题 更多 >