2011-06-12 8 views
3

모듈 car.py이 있습니다.네임 스페이스 모듈에서 클래스 초기화

는 엔진과 타이어가있다, 나는

car.engine.data 
# and 
car.tires.data 

그래서 import car 후 I가 액세스 할 수있는 지금

class engineClass(object): 
    def __init__(self): 
     self.data = 'foo data 1' 

class tiresClass(object): 
    def __init__(self): 
     self.data = 'foo data 2' 

engine = engineClass() 
tires = tiresClass() 

처럼 parts.py 보이는 파일로는 (그들의 메서드와 속성) 액세스하려면, 원하는대로 - car.engine.data

이 작업을 수행하는 것이 올바른 일입니까?

+1

... 그리고 어떤 작업이 * 되겠습니까? –

+1

당신은이 수업을 무엇에 사용하고 있습니까? 'type1'과'type2'을 구분하기 위해 – Blender

+0

. 그것들은 다르지만 하나의 모듈에 속하기에 충분합니다. – Qiao

답변

3

물론 ... 나는

이 당신이 무슨 일을하는지 아무 문제가 없다, 그러나 당신은 경우에 클래스를 초기화 당신이 보여준 건너 뛸 수 ... 당신이 요구하는지 아주 잘 모르겠어요 . 그냥 할 : 그, 나는 아무 생각이 당신이 무슨 일을하는지의 맥락에서 의미가

class type1(object): 
    data = 'foo 1' 

class type2(object): 
    data = 'foo 2' 

여부 ...

그 문제를 들어, 당신은 단지

class Container(object): 
    pass 

type1, type2 = Container(), Container() 
type1.data = 'foo 1' 
type2.data = 'foo 2' 
을 할 수

또는 기타 유사한 숫자 ... type1type2은 무엇을 나타냅니다?

+0

네, 그 대답은 제가 찾고있는 것입니다. 인스턴스를 항상 초기화해야한다고 생각했습니다. – Qiao

+1

인스턴스가 필요한 경우 인스턴스를 생성하십시오. 그러나 클래스 (객체 (인스턴스) 자체)를 사용할 수도 있습니다. 위의 경우'data'는 클래스의 정적 변수 (클래스 속성)입니다. – warvariuc