2010-12-02 4 views
0

오브젝트를위한 파이썬에서 방법이 있습니까 '알고 있습니다' 배열 요소 ID는 무엇입니까? 배열 IE 6, 및 물체 자체 자체 배열의 요소 번호를 출력하므로 '0,1,2,3,4,5'은 단어에서 NO파이썬 객체 배열에 있다는 인식?

+3

생각해이 방법 : 개체가 하나 개 이상의 요소를 무엇 경우 시퀀스? –

+0

해결하려는 문제가 무엇인지 모르겠지만 ['enumerate()'] (http://docs.python.org/library/functions.html#enumerate) –

+0

아니요. 이 작업을 수행하면 [배열] (http://docs.python.org/library/array.html)에 적합하지 않습니다. 또는 [list] (http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange)를 의미 했습니까? 대답은 아직 일반적으로 없습니다. – aaronasterling

답변

2

호 객체는 모든 것과 동시에 여러 객체 안에있을 수 있으므로 사용자가 말하지 않으면 알 수 없습니다.

-1

개체가 목록에 포함되어있는 경우 the_list.index(self)을 통해 알 수 있습니다. 그렇지 않으면 아니오.

+3

목록에있는 이전의 개체가 해당 개체와 같지 않은 경우에만. –

0

그냥 학자 연합니다 : 일반적으로, 아니 ... 하지만 기술적으로 어떤 배열의 일부 "자신의 위치를 ​​알고"하는 일부 (특정) 객체에 대한 를 ...입니다

class HelpfulClass(object): 
    def __init__(self): 
    self.arr = [] 

    def add(self, obj): 
    pos = len(self.arr) + 1 
    self.arr.append(obj) 
    obj.pos = pos 

class SmartObj(object): 
    def __init__(self): 
    self.pos = None 

    def print_my_element(self): 
    print self.pos 

if __name__ == '__main__': 
    s = HelpfulClass() 
    o = SmartObj() 
    s.add(o) 

    o.print_my_element() 

당신이 그것을 이야기하고, 이야기하지 않으면 안

0

... 기술적으로 'O'는 배열의 객체 ... 및 부품 (s.arr) ... 그리고 "알고있다"는 입장이다 그것은 매우 성가신 커플 링 및/또는 책임 문제의 분리로 이어집니다. 당신은 무엇입니까 정말려고합니까?

0

아니, 당신이 사용할 수있는 '열거'인덱스와 동시에 요소를 반복하는 내장 : 그것의

>>> x = ['a','b','c'] 
>>> for index,element in enumerate(x): 
...  print index,element 
... 
0 a 
1 b 
2 c