2013-12-11 3 views
0

이 코드가 있습니다중첩 된 클래스와 정적 메소드

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 

을하지만 SrvOne이 정의라고 예외가. 어떻게 정의되지 않을 수 있습니까? 왜 ServicerSrvOne을 참조하지?

답변

5

Servicer 네임 스페이스에 정의되어 있으며 로컬 주소가 SrvOne이고 make_SrvOne이고 로컬 주소가 SrvOne이 아닙니다.

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

왜 Servicer가 모듈이 아닌가?

+0

감사합니다. 맞습니다. 아마도 모듈 일 것입니다. –

관련 문제