0

这有点难以解释,所以我感谢你的耐心。这就是我进入调试日志 API 所得到的。我想从一个 444 行长的程序中获取值。问题是,它们都结束了,所以我不能就这样走了:
def func(foo, goo, hoo, joo):
我需要将一个字典、两个整数和一个字符串放入一个名为 strlogger() 的函数中。我需要从另一个名为 ifelogger() 的函数中获取整数之一。我该怎么做?例子:

import random
def strlogger():
    # Get Dictionary, int1, int2, and string
    print('Dict: ' + dict,
          'int1: ' + int1,
          'int2: ' + int2,
          'str : ' + string)
def ifelogger():
    random.randint(0, 999999999)

该函数的调用方式如下:ifelogger(). 如果对我遇到的这个问题有任何简单的(或困难的,我不在乎,只要它有效)解决方案,将不胜感激。如果您有任何问题,请发表评论。谢谢!


4

1 回答 1

0

使有趣的变量具有文件级范围,而不是隐藏在函数级范围内...

dict = {}
int1 = 1
int2 = 2
string = 'foo'

def strlogger():
    # Get Dictionary, int1, int2, and string
    print('Dict: ' + dict,
          'int1: ' + int1,
          'int2: ' + int2,
          'str : ' + string)

def ifelogger():
    global int1
    int1 = random.randint(0, 999999999)

请注意,如果您在函数中更改全局变量的值(而不仅仅是读取它),则必须声明它,global否则 Python 将创建该函数的局部变量。

ifelogger, whenint1被设置时,它是int1文件级范围的变量。这与打印值时看到的int1相同strlogger

于 2018-02-21T01:54:24.670 回答