嵌套类和静态方法

Edg*_*ian 0 python class

我有这个代码:

class Servicer(object):
    clsVrb = "run"

    class SrvOne(object):
        def __init__(self, name):
            self.name = name

    class SrvTwo(object):
        def __init__(self, name):
            self.name = name

    @staticmethod
    def make_SrvOne(name):
        return SrvOne(name)





test = Servicer.make_SrvOne("Edgar")
print test
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外,即SrvOne未定义.怎么可能未定义?为什么Servicer看不到SrvOne

Pav*_*sov 5

它在Servicer命名空间中定义,没有本地SrvOne,make_SrvOne没有全局SrvOne.

@staticmethod
def make_SrvOne(name):
    return Servicer.SrvOne(name)
Run Code Online (Sandbox Code Playgroud)

为什么Servicer不是一个模块?