在类方法中使用self

2024-10-05 14:21:41 发布

您现在位置:Python中文网/ 问答频道 /正文

在classmethod中使用变量名self被认为是不好的做法吗?例如:

@classmethod
def update_objs(cls, limit=10e6):
    items = PortalAsset.objects.filter(is_deleted=False, title__is_active=True)[:limit]
    for self in items:
        new_obj = {
            'objectID': self.pk
        }
        # etc.

我发现上面的内容对我来说更直观,因为我知道循环中的每个项基本上都是该类的一个实例。你知道吗


Tags: selffalseobjectstitleisdefupdateitems
2条回答

这与编码约定有更多的关系,但是我相信如果您决定使用变量self,它应该具有与英语单词暗示相同的反射意义,即引用代码所属的当前对象或类似的东西。你知道吗

但是,我有时会在类方法中使用该变量,该类方法应该是构造函数:

@classmethod
def new_from_file(cls, filename):
    self = cls()
    self.load_file(filename)
    return self

现在你问这个问题,我想知道这是否明智。也许像new_object这样的东西会更好,但是我发现这里所做的非常明确,因为self变量实际上是用来保存当前对象的。你知道吗

别这么做。任何需要读你代码的人都会想要你离开。你知道吗

无论您考虑在类方法的哪一部分中使用名称self,请考虑将其提取到实例方法中。然后可以在该方法中调用对象self。你知道吗

相关问题 更多 >