/ / Typ objektu IronPython - python, ironpython

Typ objektu IronPython - python, ironpython

Mám otázku o type objektu vIronPython. Vytvoril som .NET v C # (vytvoril som triedu MyClass) a zostavil som svoj projekt triedy knižníc. Povedzme, že som vytvoril TestLibrary.dll takýmto spôsobom. Potom som odkazoval na túto knižnicu v mojom projekte IronPython a vytvoril triedu IronPython, ktorá zdedí typ .NET, ktorý je v mojom TestLibrary.dll. Môj kód vyzerá takto:

import clr
clr.AddReferenceToFileAndPath(r"C:TestLibraryTestLibrarybinDebugTestLibrary.dll")

from TestLibrary import *

class TestPythonClass(MyClass):
def doSomething(self):
print("Hello")

Ale keď som vytvoril objekt mojej TestPythonClass, zistil som, že typ tohto objektu je "IronPython.NewTypes.TestLibrary.MyClass_15 $ 16".

testPythonClass = TestPythonClass()
typeToString = testPythonClass.GetType().ToString()

Môže mi niekto poskytnúť nejaké ďalšie informácie, prečo je typ môjho objektu IronPython skutočne typu, ktorý je deklarovaný do TestLibrary.dll? A prečo typ nie je TestPythonClass?

odpovede:

2 pre odpoveď č. 1

IronPython používa reflexiu na zvládnutie .NET.

Na .GetType() Metóda volá typ CLR. Jeho rovnaké ako telefonovanie

clr.GetClrType(type(testPythonClass))

Malo by byť iné, ak zavoláte

type(testPythonClass)

dostanete python triedy.