python - python 内置方法是否在任何地方的替代 namespace 中可用?

标签 python built-in

是 python built-in可在某处的包中引用的方法?

让我解释一下。在我早期使用 Python 的日子里,我制作了一个类似于此的 Django 模型:

class MyModel(models.Model):
    first_name = models.CharField(max_length=100, null=True, blank=True)
    last_name = models.CharField(max_length=100, null=True, blank=True)
    property = models.ForeignKey("Property")

此后我需要为其添加一个属性。这给我留下了这个模型:

class MyModel(models.Model):
    first_name = models.CharField(max_length=100, null=True, blank=True)
    last_name = models.CharField(max_length=100, null=True, blank=True)
    property = models.ForeignKey("Property")

    @property
    def name(self):
        return "{} {}".format(first_name, last_name)

所以现在在运行时我收到错误:TypeError: 'ForeignKey' object is not callable。发生这种情况是因为属性的 ForeignKey 已经替换了内置标识符属性。我希望能够做的是,而不是 @property 使用 @sys.property (或类似的东西)。

注意:我已经知道将名称属性移动到属性字段声明上方的解决方法。我不太关心这个特殊情况,因为我是引用 python 内置函数的替代位置的主要问题。

最佳答案

使用builtins , 或 __builtin__如果您使用的是 Python 2。

def open():
    pass

import __builtin__

print open
print __builtin__.open

这给你:

<function open at 0x011E8670>
<built-in function open>

关于python - python 内置方法是否在任何地方的替代 namespace 中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4599016/

相关文章:

python - 将自定义格式数据加载到 splunk 中

python - 在 cmd 中通过 Python 运行工具不等待

Python UML 图

Python - 获取质数

VB6元组等效吗?

python - 如何查看Python的__builtins__源代码?

python >= 类上的运算符

python - 是否可以在 Python 中引发内置异常,但使用不同的消息?

python - 搞乱了我的系统 python