0

Python で簡単なクラスを作成し、特定の属性があるかどうかを確認します。hasattr() が True を返した後、Cython で書き直そうとしましたが、hasattr() は False を返します。

Python で次の例を見てください。

class Foo_p:
    def __init__(self, val):
        self.val = val
    def printVal(self):
        print(self.val)

a=Foo_p(5)
print(hasattr(a,"val"))

この例では、「True」が出力されます。

Cython で書き直してみる:

%load_ext Cython
%%cython
cdef class Foo_c:
    cdef int val

    def __init__(self, int val):
        self.val = val
    def printVal(self):
        print(self.val)

b=Foo_c(5)
print(hasattr(b,"val"))

そして今、それは「False」を出力します

何が起こったのか知っている人はいますか?

4

0 に答える 0