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

时间:2017-08-16 05:44:54

标签: python opengl

假设我在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)

我想传递那个显示功能并打印出来“Hooray!,X is:5”

我会将其作为

传递给我
h = foo()
glutDisplayFunc(h.display)

这可行吗?

2 个答案:

答案 0 :(得分:0)

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

h = foo()
glutDisplayFunc(h.display)

答案 1 :(得分:0)

如果这是你的班级:

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