EDN Admin
Well-known member
here is my python code:#filename:animal.py
__metaclass__=type
class Animal():
def __init__(self):
self.id=-1
self.name=
def doSomething(self):
print animal...
def toString(self):
print id={0},Name={1}.format(self.id,self.name)
class Cat(Animal):
def __init__(self):
#super(Animal,self).__init__()
Animal.__init__(self)
def doSomething(self):
print this is {0}....format(self.name)
print hello
if __name__==__main__:
a=Animal()
print a.id,a.name#filename:animalset.py
__metaclass__=type
from animal import Animal,Cat
class AnimalSet():
def __init__(self):
a0=Animal()
a0.id,a0.name=1,unknown
a1=Cat()
a1.id,a1.name=2,Tom
a2=Cat()
a2.id,a2.name=3,Paul
self.arr=[a0,a1,a2]
def set(self):
return self.arr
def add(self,animal):
self.arr.append(animal)
def find(self,index):
for i,value in enumerate(self.arr):
if i==index:
return value
generally,we can invoke ironpython class and its members using the .net library ironpyton.dll,
here is my sample: ScriptEngine engine = Python.CreateEngine();
string ironpath = @"D:ironpythondemoipylib";
engine.SetSearchPaths(new string[] { ironpath });
ScriptSource source = engine.CreateScriptSourceFromFile(Path.Combine(ironpath, "animset.py"));
ScriptScope scope = engine.CreateScope();
ObjectOperations ops = engine.CreateOperations();
source.Execute(scope);
dynamic animalSet = scope.GetVariable("AnimalSet");
dynamic animal = animalSet().find(0);
Console.WriteLine("id:{0}", animal.id);
Console.WriteLine("name:{0}", animal.name);
Console.ReadKey();
it is likely to invoke ironpython members using ObjectOperations and dlr(dynamic keywords), but i want to know more about ironpython class members such as how to get python method parameters.
we can use .net reflection to get parameters from .net class easily: var cls = typeof(System.IO.FileStream);
var method = cls.GetMethod("Read");
ParameterInfo[] parameters = method.GetParameters();
So, how can i get python method paramters using .net?
for example,in the file “animalset.py” ,the “AnimalSet“ class has the method ”find“,then how to get parameters from method find?
View the full article
__metaclass__=type
class Animal():
def __init__(self):
self.id=-1
self.name=
def doSomething(self):
print animal...
def toString(self):
print id={0},Name={1}.format(self.id,self.name)
class Cat(Animal):
def __init__(self):
#super(Animal,self).__init__()
Animal.__init__(self)
def doSomething(self):
print this is {0}....format(self.name)
print hello
if __name__==__main__:
a=Animal()
print a.id,a.name#filename:animalset.py
__metaclass__=type
from animal import Animal,Cat
class AnimalSet():
def __init__(self):
a0=Animal()
a0.id,a0.name=1,unknown
a1=Cat()
a1.id,a1.name=2,Tom
a2=Cat()
a2.id,a2.name=3,Paul
self.arr=[a0,a1,a2]
def set(self):
return self.arr
def add(self,animal):
self.arr.append(animal)
def find(self,index):
for i,value in enumerate(self.arr):
if i==index:
return value
generally,we can invoke ironpython class and its members using the .net library ironpyton.dll,
here is my sample: ScriptEngine engine = Python.CreateEngine();
string ironpath = @"D:ironpythondemoipylib";
engine.SetSearchPaths(new string[] { ironpath });
ScriptSource source = engine.CreateScriptSourceFromFile(Path.Combine(ironpath, "animset.py"));
ScriptScope scope = engine.CreateScope();
ObjectOperations ops = engine.CreateOperations();
source.Execute(scope);
dynamic animalSet = scope.GetVariable("AnimalSet");
dynamic animal = animalSet().find(0);
Console.WriteLine("id:{0}", animal.id);
Console.WriteLine("name:{0}", animal.name);
Console.ReadKey();
it is likely to invoke ironpython members using ObjectOperations and dlr(dynamic keywords), but i want to know more about ironpython class members such as how to get python method parameters.
we can use .net reflection to get parameters from .net class easily: var cls = typeof(System.IO.FileStream);
var method = cls.GetMethod("Read");
ParameterInfo[] parameters = method.GetParameters();
So, how can i get python method paramters using .net?
for example,in the file “animalset.py” ,the “AnimalSet“ class has the method ”find“,then how to get parameters from method find?
View the full article