如何使用Python从另一个函数中调用一个函数?

时间:2014-09-23 03:53:52

标签: python

我的代码:

def inner_function(self):
    x = "one"
    y = "two"

def outer_function(self):
    self.inner_function()
    print "X is %" % x
    print "Y is %" % y

outer_function()

我希望输出为:

>>> X is one
>>> Y is two

我想我并不理解在Python方法/函数中正确使用self

我目前正在返回的错误是:TypeError: outer_function() takes exactly 1 argument (0 given)感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

你需要:

def inner_function():
    x = "one"
    y = "two"
    return x, y

def outer_function():
    x, y = inner_function()
    print "X is %" % x
    print "Y is %" % y

outer_function()

self用于类中的实例方法,但在这里您只是使用独立函数。

或者,对于一个班级:

class MyClass:
    def printme(self):
        print(self.x)

    def mymethod(self):
        self.printme()

a = MyClass()
a.x = "One"
b = MyClass()
b.x = "Two"

a.mymethod()
b.mymethod()

将输出:

One
Two

正如您所看到的,您不需要(并且不应该)将self显式传递给方法 - Python会隐式传递它。当您致电a.mymethod()时,self会引用a,当您致电b.mymethod()时,self会引用b。如果没有此机制,printme()通过mymethod()将无法知道要打印哪个对象x