访问函数内部的变量

时间:2013-07-05 17:11:59

标签: python module

我正在寻找任何一个小例子或什么来帮助我,我找不到它。我觉得我错过了一些明显的东西。我在一个.py文件中有一个大函数,我想在另一个.py文件中调用并使用函数中的所有变量而我无法做到。所以我试图用一个小例子来做它仍然无法得到它。假设我有一个包含以下内容的文件mod1.py:

def mod(num):
    a = 5
    b = 6
    c = num

我尝试为它添加各种回报但仍然无法使其发挥作用。但我在一个名为mod_read.py的文件中调用它:

import mod1

mod1.mod(1)
d = mod1.mod.a
print(d)

当我运行mod_read.py时,我收到错误:“AttributeError:'function'对象没有属性'a'”。我错过了什么明显的事情?

3 个答案:

答案 0 :(得分:6)

  1. 仅在运行函数时存在局部变量。
  2. 局部变量绝不是其包含函数的属性。
  3. 如果要从函数中获取值,则需要从中返回它们。否则,如果需要更多持久性,请查看OOP。

答案 1 :(得分:1)

您可以从函数返回多个值作为元组:

def mod(num):
    a = 5
    b = 6
    c = num
    return (a, b, num)

然后在另一个文件中,使用类似这样的内容:

import mod1

d, b, num = mod1.mod(1)
print(d)    

答案 2 :(得分:0)

您不使用其他功能的变量。你调用一个函数,你得到它的返回值 - 这是一个函数的点(或引起它引起的任何副作用)。

如果你想要一个在变量中存储值的东西,你想要使用 objects 。定义一个类。

在您的特定示例中,我不知道“各种返回”的含义,但如果您希望函数返回a,请执行return a

def mod(num):
    a = 5
    b = 6
    c = num
    return a