带有静态方法和self引用的Python类



我有一个类,我想从静态方法中引用self。有办法做到这一点吗?

class User(object):
    email = "username"
    password = "********"
    @staticmethod
    def all():
        return {"ex": self.password}

print(User.all())

这样做的方法是用一个类方法代替。它的工作方式是,第一个参数是类本身,您可以使用点操作符访问变量。

例如:

class User(object):
    email = "username"
    password = "********"
    @classmethod
    def all(cls):
        return {"ex": cls.password}

print(User.all())

https://docs.python.org/2/library/functions.html classmethod

没有。

staticmethod的要点是它既不需要实例(self)也不需要类(通常称为cls)信息来完成它的工作。

如果你的staticmethod需要self,那么它就不是staticmethod,你应该正常定义它

最新更新