说我在Python中有一个函数:
def createCube(no_of_cubes):
此函数创建立方体,其创建的立方体数量由参数设置:no_of_cubes
如果我想创建另一个功能:
def moveCubes():
我想在这个函数中使用参数no_of_cubes,并且参数使用为第一个函数输入的相同整数。我该怎么办?或者是不可能的?
答案 0 :(得分:1)
参数只是函数的一个参数,就像你在数学函数中所拥有的那样,例如f(x) = 2*x
。同样在数学中,您可以使用相同的参数定义无限问题,例如g(x) = x^2
。
参数的名称不会改变任何内容,它只是你的函数将如何调用该值。您可以随意调用它,例如f(potato) = 2 * potato
。但是,有一些广泛的命名约定 - 例如,在数学中,您可以优先考虑实际变量的小写罗马字母。在编程中,就像你一样,你想给出有意义的名字 - 如果它引用了多维数据集的数量,调用它no_of_cubes
会让你更容易阅读你的程序而不是调用它oquhiaisnca
,所以赞誉在那。
我不确定这一点如何适合你的程序。其他一些答案提出了实现这一目标的方法。如果它只是两个松散的函数(不是类的一部分),你可以在函数之外定义一个变量来做你想要的,如下所示:
1: n = 4 # number of cubes, bad variable name
2: def createCube(no_of_cubes):
3: # things
4: def moveCubes(no_of_cubes):
5: # different things
6: createCube(n)
7: moveCubes(n)
这里发生的是第6行调用函数createCube
并将n
(即4)作为参数。然后第7行调用moveCubes
,为其提供与n
相同的参数。
这是一个非常基本的问题,所以我假设你是编程的新手。如果你参加一些python教程,它可能会有很大帮助。我推荐Codecademy,但您可以选择其他几个。祝你好运!
答案 1 :(得分:0)
有可能。但是这两个定义将该参数作为自己的参数。我的意思是该参数仅适用于定义范围。它可能对不同定义中的另一个相同名称参数无害。
答案 2 :(得分:0)
您可以在createCube()中加载函数moveCubes()。例如:
def createCube(no_of_cubes):
# Do stuff
moveCubes(no_of_cubes)
def moveCubes(no_of_cubes):
# Do more stuff
或者您可以从函数中定义no_of_cubes,以便所有人都可以访问它。
no_of_cubes = 5
def createCube():
global no_of_cubes
# Do stuff
def moveCubes():
global no_of_cubes
# Do stuff
答案 3 :(得分:0)
如果你做不到,可能你不应该这样做。
如果他们是两个独立的功能(不是嵌套的),他们不应该共享参数。
如果他们确实以某种方式建立联系,更好的方法是定义一个类:
class Cube:
def __init__(self, no_of_cubes):
self.no_of_cubes = no_of_cubes
def create_cube(self):
# use self.no_of_cubes
pass
def move_cubes(self):
# use self.no_of_cubes
pass
c = Cube(no_of_cubes)
c.create_cube()
c.move_cubes
除非你知道自己在做什么,否则不要定义全局变量。