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(或类似方法)。
TypeError: 'ForeignKey' object is not callable
@property
@sys.property
注意: 我已经知道将name属性移到property字段的声明上方的解决方法。我不太担心这种特殊情况,因为我是引用python内置文件的替代位置的主要问题。
使用builtins,或者使用__builtin__Python 2。
builtins
__builtin__
def open(): pass import __builtin__ print open print __builtin__.open
这给您:
<function open at 0x011E8670> <built-in function open>