Python中的命名空间问题

时间:2014-09-14 08:18:45

标签: python namespaces

我正在使用Python是本机脚本语言的程序。不幸的是,它们有一个使用名称bytes的本机函数。当我尝试使用实际的bytes内置函数时,这会导致问题,并且它认为我引用了该内置变量。我将向您展示我的意思,一个对象作为以下内置代码:

def receive(row, table, message, bytes):
     #This is defined in the GUI

因此,rowtablemessagebytes都作为参数传入,有效地覆盖了名称bytes。所以,如果我说bytes(something).decode(),我会得到TypeError: 'bytes' object is not callable

有没有办法摆脱这种干扰?

2 个答案:

答案 0 :(得分:3)

您的问题与this类似。只是from builtins import bytes as _bytes;这样你就可以_bytes(something).decode()

虽然重命名第四个参数是一个更好的解决方案。

答案 1 :(得分:3)

为第四个参数使用不同的名称(如果可以更改函数的签名)

def receive(row, table, message, bytes_):
    #This is defined in the GUI