python内置方法在任何地方的替代名称空间中都可用吗?
python内置方法是否可在某个地方的包中引用?
让我解释。在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
(或类似方法)。
注意:
我已经知道将name属性移到property字段的声明上方的解决方法。我不太担心这种特殊情况,因为我是引用python内置文件的替代位置的主要问题。
-
使用
builtins
,或者使用__builtin__
Python
2。def open(): pass import __builtin__ print open print __builtin__.open
这给您:
<function open at 0x011E8670> <built-in function open>