我怎么能在这里做他们正在谈论的事情,但是在Ruby中呢?
你会如何对对象执行此功能?你将如何做一个全局函数(参见jetxee 在上述帖子中的回答)?
示例代码:
event_name = "load"
def load()
puts "load() function was executed."
end
def row_changed()
puts "row_changed() function was executed."
end
#something here to see that event_name = "load" and run load()
Run Code Online (Sandbox Code Playgroud)
更新: 你如何得到全球方法?还是我的全球职能?
我试过这个额外的一行
puts methods
Run Code Online (Sandbox Code Playgroud)
和load和row_change未列出的地方.
是否有可能在Python中重载函数?在C#中,我会做类似的事情
void myfunction (int first, string second)
{
//some code
}
void myfunction (int first, string second , float third)
{
//some different code
}
Run Code Online (Sandbox Code Playgroud)
然后当我调用函数时,它会根据参数的数量区分两者.是否有可能在Python中做类似的事情?
我有一个str对象,例如:menu = 'install'
.我想从这个字符串运行install方法.例如,当我打电话时,menu(some, arguments)
它会打电话install(some, arguments)
.有没有办法做到这一点?
如果我在字符串中有对象和方法名称,我该如何调用该方法?
class Foo:
def bar1(self):
print 1
def bar2(self):
print 2
def callMethod(o, name):
???
f = Foo()
callMethod(f, "bar1")
Run Code Online (Sandbox Code Playgroud) 我有这个代码:
fields = ['name','email']
def clean_name():
pass
def clean_email():
pass
Run Code Online (Sandbox Code Playgroud)
我怎么能叫clean_name()
和clean_email()
动态?
例如:
for field in fields:
clean_{field}()
Run Code Online (Sandbox Code Playgroud)
我使用了花括号,因为它是我以前在PHP中使用它的方式,但显然不起作用.
如何用Python做到这一点?
在python中,假设我有一个字符串,其中包含我知道特定对象将具有的类函数的名称,如何调用它?
那是:
obj = MyClass() # this class has a method doStuff()
func = "doStuff"
# how to call obj.doStuff() using the func variable?
Run Code Online (Sandbox Code Playgroud) 有没有办法在Python中获取对象的名称?例如:
my_list = [x, y, z] # x, y, z have been previously defined
for bla in my_list:
print "handling object ", name(bla) # <--- what would go instead of `name`?
# do something to bla
Run Code Online (Sandbox Code Playgroud)
编辑:一些上下文:
我实际上在做的是创建一个我可以通过命令行指定的函数列表.
我有:
def fun1:
pass
def fun2
pass
def fun3:
pass
fun_dict = {'fun1': fun1,
'fun2': fun2,
'fun3': fun3}
Run Code Online (Sandbox Code Playgroud)
我从命令行获取函数的名称,我想调用相关函数:
func_name = parse_commandline()
fun_dict[func_name]()
Run Code Online (Sandbox Code Playgroud)
我想拥有该函数名称的原因是因为我想创建fun_dict
两次函数的名称,因为这似乎是创建错误的好方法.我想做的是:
fun_list = [fun1, fun2, fun3] # and I'll add more as the need arises
fun_dict …
Run Code Online (Sandbox Code Playgroud) class MyClass:
def __init__(self, i):
self.i = i
def get(self):
func_name = 'function' + self.i
self.func_name() # <-- this does NOT work.
def function1(self):
//do something
def function2(self):
//do something
Run Code Online (Sandbox Code Playgroud)
我得到的错误:TypeError:'str'对象不可调用
有人可以帮忙解决这个问题.我尝试了很多排列和组合,但无济于事!(注意:'self.func_name'也不起作用)
几天前我在网上搜索,我发现了一篇关于python词典的有趣文章.它是关于使用字典中的键来调用函数.在那篇文章中,作者定义了一些函数,然后是一个字典,其键与函数名完全相同.然后他可以从用户那里获得一个输入参数并调用相同的方法(类似于实现大小写).之后我意识到了同样的事情,但不知何故有所不同.我想知道如何实现这一点.如果我有一个功能:
def fullName( name = "noName", family = "noFamily" ):
return name += family
Run Code Online (Sandbox Code Playgroud)
现在,如果我有这样的字符串:
myString = "fullName( name = 'Joe', family = 'Brand' )"
Run Code Online (Sandbox Code Playgroud)
有没有办法执行这个查询并得到一个结果:JoeBrand
例如我记得的是我们可能会给exec()语句一个字符串,它为我们做了.但是我不确定这个特例,而且我也不知道Python的有效方法.而且我将非常感谢帮助我如何处理函数返回值,例如在我的情况下如何打印该函数返回的全名?
我试图将函数的名称作为参数传递给另一个函数,但我得到一个错误:"TypeError:'str'对象不可调用".以下是该问题的简化示例:
def doIt(a, func, y, z):
result = z
result = func(a, y, result)
return result
def dork1(arg1, arg2, arg3):
thing = (arg1 + arg2) / arg3
return thing
def dork2(arg1, arg2, arg3):
thing = arg1 + (arg2 / arg3)
return thing
Run Code Online (Sandbox Code Playgroud)
我打电话的时候是这样的:
var = 'dork1'
ned = doIt(3, var, 4, 9)
print (ned)
Run Code Online (Sandbox Code Playgroud)
我明白了:
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
ned = doIt(3, var, 4, 9)
File "<pyshell#2>", line 3, in doIt
result = …
Run Code Online (Sandbox Code Playgroud)