相关疑难解决方法(0)

我如何查看Python对象?

我开始使用Python编写各种项目代码(包括Django Web开发和Panda3D游戏开发).

为了帮助我理解正在发生的事情,我想基本上"查看"Python对象内部以查看它们如何勾选 - 就像它们的方法和属性一样.

所以说我有一个Python对象,我需要打印出它的内容?这甚至可能吗?

python introspection

266
推荐指数
13
解决办法
28万
查看次数

为什么globals()是Python中的一个函数?

Python提供了globals()访问所有全局变量的字典的功能.为什么这是一个函数而不是一个变量?以下作品:

g = globals()
g["foo"] = "bar"
print foo # Works and outputs "bar"
Run Code Online (Sandbox Code Playgroud)

在函数中隐藏全局变量的理由是什么?最好只调用一次并在某处存储引用,还是应该在每次需要时调用它?

恕我直言,这不是Python中globals()Reason的重复,因为我不是问为什么globals()存在,而是为什么它必须是一个函数(而不是一个变量__globals__).

python global

14
推荐指数
1
解决办法
1187
查看次数

为什么人们会使用globals()来定义变量

我最近在我们的代码中遇到了许多这样的地方

...
globals()['machine'] = otherlib.Machine()
globals()['logger'] = otherlib.getLogger()
globals()['logfile'] = datetime.datetime.now().strftim('logfiles_%Y_%m_%d.log')
Run Code Online (Sandbox Code Playgroud)

而且我对人们为什么这样做而不是做的感到有点困惑

global machine
machine = otherlib.Machine()
Run Code Online (Sandbox Code Playgroud)

等等.

这是一个稍微匿名的功能,完整地执行此操作:

def openlog(num)
    log_file = '/log_dir/thisprogram.' + num
    if os.path.exists(log_file):
        os.rename(log_file, log_file + '.old')

    try:
        globals()["log"] = open(log_file, 'w')
        return log
    except:
       print 'Unable to open ' + log_file
       sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

它混淆了pylint(0.25)以及我.

是否有任何理由对其进行编码?在我们的代码中使用最少的eval,这不在库中

PS我在python中检查了globals()的原因,但它并没有真正回答为什么你用这个来设置程序中的全局变量

python pylint

6
推荐指数
1
解决办法
352
查看次数

将字符串转换为函数调用

我有一个变量,它是函数的确切名称,但是以字符串格式.例如...

ran_test_opt = "random_aoi"
Run Code Online (Sandbox Code Playgroud)

而且功能是

def random_aoi():
  logging.info("Random AOI Test").
Run Code Online (Sandbox Code Playgroud)

从配置文件接收,因此无法更改.有没有办法可以将字符串转换为我可以调用函数的格式?即

ran_test_opt()
Run Code Online (Sandbox Code Playgroud)

这将运行random_aoi函数.

python

5
推荐指数
1
解决办法
2720
查看次数

标签 统计

python ×4

global ×1

introspection ×1

pylint ×1