如何调用方法
>>> class test():... def fun1(self,x):
... print(x+1)
... def fun2(self,y):
... print(y+2)
... def callfun(fname,arg):
... fname(arg)
...
>>> x=test()
>>> x.callfun(fun1,4)
需求:当我写x.callfun(fun1,4) 屏幕上输入5 ;x.callfun(fun2,4) 屏幕上输入6。 回复 1# luofeiyu_cu
为毛你总想写些稀奇古怪的代码?你先说说你为什么想这样实现?有什么需求导致你想这样实现? 回复 1# luofeiyu_cu
可以通过getattr来访问。
针对你的代码,可以修改为:class test():
def fun1(self,x):
print(x+1)
def fun2(self,y):
print(y+2)
def callfun(self, fname,arg):
getattr(self, fname)(arg)
item = test()
item.callfun("fun1", 4)
item.callfun("fun2", 9) :mrgreen: 回复 3# icymirror
class test():
def fun1(self,x):
print(x+1)
def fun2(self,y):
print(y+2)
def callfun(self,fname,arg):
getattr(self, fname)(arg)
x=test()
x.callfun('fun2',4) 回复 2# ssfjhh
:mrgreen: :mrgreen:
应该这样写:
x.callfun(x.fun1,4)
x.callfun(x.fun2,4)
页:
[1]