2017-08-16 16 views
0

私はPythonでOpenGLを使っています。Pythonのオブジェクト関数と参照関数の変数

はしばしば、あなたは、このような

ディスプレイは、あなたが書かれている機能です
glutDisplayFunc(display) 

として呼び出しを行います。

私は

としてそれを渡す:私はクラス

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

を持っていると私はその表示機能を渡すと、それは「5万歳!、Xは、」印刷したい場合はどう

h = foo() 
glutDisplayFunc(h.display) 

これは機能しますか?

+0

を、そしてちょうどそれを試してみてください。 – rocksteady

+0

'self.x'を知らせるために' __init__'関数を追加するべきです。 – rocksteady

+0

通常、クラス名はCamelCaseに、関数名はsnake_caseにあります。 –

答えて

0

はい、あなたがそのような関数を呼び出すことができます。

h = foo() 
glutDisplayFunc(h.display) 
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 
関連する問題