python内置方法在任何地方的替代名称空间中都可用吗?

发布于 2021-01-29 14:56:44

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内置文件的替代位置的主要问题。

关注者
0
被浏览
65
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用builtins,或者使用__builtin__Python
    2。

    def open():
        pass
    
    import __builtin__
    
    print open
    print __builtin__.open
    

    这给您:

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看