【问题标题】:Moving variables up in subsequent Python functions在后续 Python 函数中上移变量
【发布时间】:2013-08-15 13:21:40
【问题描述】:

我一直在阅读一些在不同 Python 模块中导入变量或使它们成为全局变量的方法,但我相信我的情况有点复杂。我也试过了

导入配置

但我没弄好

我编写了一系列具有 jerarchy 的函数(每个函数调用下面的函数,依此类推)。 到目前为止,我已经设法通过 return 语句检索到我想要的变量,但是随着整个事情的发展,它变得非常脏而且很长。 关于如何设置我在所有上层都可以访问的函数之一中创建的变量的任何想法? 所以我有: 1 级)

def t2m(...):
    ...
    L=np.array(l1)
    ret=[...,L,...]
    return ret

2 级)

ret=twm(...)
L=ret[3]   #3 is an example

def dc(...,L,...):
    ...
    # L is not even used in this level 
    ...
    ret=[...,...,L,...]
    return ret

3 级)

ret=dc(...)
L=ret[n]
for j in L:
    ...

几乎我有很多 L 甚至更多的关卡,所以它变得很糟糕。我可以在创建 L 时以某种方式让它从任何地方都可以访问吗?

谢谢!

【问题讨论】:

  • 您通常使用函数来委派(子)任务。如果 'top' 函数的调用者需要那些其他函数的输出,那么您就不再委托了,而您的顶级代码应该只直接调用这些函数。跨度>

标签: python python-2.7 global-variables


【解决方案1】:
  1. 重构您的代码,使您只有一层调用嵌套
  2. 将其打包到一个对象中,并将共享值存储在self 上。

【讨论】:

  • 感谢您的回答。我正在解决这个问题,但无法弄清楚你对 self 的意思
  • @user2685953 你见过python类吗?方法的第一个参数的标准名称是self
猜你喜欢
  • 2018-01-03
  • 2017-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 2018-06-09
  • 2012-07-31
相关资源
最近更新 更多