我对Python比较陌生,而且我一直坚持看似非常微不足道的事情,所以希望有人可以提供帮助。
我尝试做的是在Python中调用方法内部的方法。我想用各种不同的方法多次调用这种方法,所以如果我要使用它10次,我不想继续复制和粘贴代码 - 只是为了保持称那是" def"。
我尝试了以下内容:
return anotherMethod()
任何想法如何做到这一点?!
谢谢!
编辑: 对此问题含糊不清感到抱歉。我试图理解术语。
def scaleC():
pianoIcon = Icon("PianoScaleC.png")
d1 = Display("iPiano", pianoIcon.getWidth(), pianoIcon.getHeight())
d1.add(pianoIcon)
return piano()
def scaleCS():
pianoIcon = Icon("PianoScaleCS.png")
d1 = Display("iPiano", pianoIcon.getWidth(), pianoIcon.getHeight())
d1.add(pianoIcon)
return piano()
def piano:
#play the piano keys, etc
答案 0 :(得分:0)
所以你正在做这样的事情?:
def my_global_function():
def my_local_function():
print('hello world')
my_local_function()
然后在那个定义之外你想再次调用该函数? 但它已被破坏,因为你退出了范围。
你可以把它变成全球性的:
my_local_function_global_scope = None
def my_global_function():
def my_local_function():
print('hello world')
# Declare variable space as global and assign to it
global my_local_function_global_scope
my_local_function_global_scope = my_local_function
my_local_function()
my_local_function_global_scope()
答案 1 :(得分:-1)
你想要调用相同的函数/方法十次吗?在循环中做到吗?
for i in range(10):
print('Iteration Number %s' % i)
anotherMethod()
如果要在列表中返回函数的结果十次,可以使用 list comprehension
return [anotherMethod() for _ in range(10)]
注意:_
变量是一个约定,当您需要进行赋值但不想存储该变量时,{I}命名它将有效地删除它,因为我理解。
我的最后一个想法是你要引用一次调用并调用它十次。你也可以这样做(这是我最喜欢的python之一)
_
答案 2 :(得分:-1)
如果您询问如何在Python中定义可以从任何地方调用的方法,您可以在library.py文件上编写所需的方法,如下所示:
def fun(a , b):
return a + b
然后从另一个文件(即。program.py)中调用它,如下所示:
from library import fun
def main():
# your code
print fun(1, 2)
a = 4
b = 5
c = fun(a, b)
print c
if __name__ == '__main__': main()
这将输出:
3
9
希望有所帮助。
答案 3 :(得分:-2)
嗯,这很简单。你只需要在其他函数中调用该函数。这是一个例子:
def Examples():
print 'Function successfully called!'
def Example()
print 'Calling function...'
Examples() #This will call the function above it
Example()
你的结果应该是:
Calling function...
Function successfully called!
不应弹出任何错误,这应该有效。只需添加一个变量:
loop = 0
并将函数放在while循环中:
while loop <> 10:
loop += 1
def Examples():
print 'Function successfully called!'
def Example()
print 'Calling function...'
Examples() #This will call the function above it
Example()
这将解决您的问题。我希望这可以帮助你!您隐含的最终代码应为:
loops = 0
while loops <> 10:
loops += 1
def scaleC():
pianoIcon = Icon("PianoScaleC.png")
d1 = Display("iPiano", pianoIcon.getWidth(), pianoIcon.getHeight())
d1.add(pianoIcon)
piano()
def scaleCS():
pianoIcon = Icon("PianoScaleCS.png")
d1 = Display("iPiano", pianoIcon.getWidth(), pianoIcon.getHeight())
d1.add(pianoIcon)
piano()
def piano:
#play the piano keys, etc
答案 4 :(得分:-2)
如果我理解你的问题,你只需要像这样使用它。
class YourClass(object):
def method(self):
pass # here goes your method
def method_where_i_want_to_use_other_method(self):
self.method()
#other things you need in this method