2013-02-13 6 views
1

두 파일 multitest.py 및 skiplist.py가 있습니다 우리는 편집 할 수없는 시작 코드로 skiplist.py가 제공됩니다.Python에서 가져온 파일의 코드 실행

multitest.py 내가 만들고 skiplist.py 파일에서

skiplist.py

에서 기능을 빌려되어있어 파일, 우리는 multitest에서

class SkipList(object): 
    def __len__(self): 
     """(SkipList) -> int 
     Return the number of items in this skip list. 
     """ 
     return self.size 

같은 방법이있다. py, 나는 내 자신의 len 메서드를 만들어야하지만 내장 함수에 액세스 할 수는 없습니다.

from skiplist import * 
class MultiSet(object): 
    def __len__(self): 
     """(MultiSet) -> int 
     Return the number of items in this multiset. 
     """ 
     return SkipList.__len__(self) 

s = MultiSet([]) 
print(len(s)) 

를 실행 내가 오류를

Traceback (most recent call last): 
File "/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 134, in <module> 
File "/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 56, in __len__ 
File "/Users/Borna/Documents/CSC148/Assignment/skiplist.py", line 39, in __len__ 
return self.size 
builtins.AttributeError: 'MultiSet' object has no attribute 'size' 
+1

기술적으로'object'는 내장 ... – geoffspear

답변

4

음을 얻을, 당신의 MultiSet 때문에 그 자체에 SkipList의 메소드를 호출하지 않아야 SkipList에서 상속하지 않습니다. 이 경우, 알 수 있듯이 SkipList에는 .size 속성이 있지만 MultiSet 속성은 없습니다.

이 문제를 해결하려면, 당신은에이 중 하나 (예를 들어, MultiSetSkipList의 인스턴스를 포함 가진 해당 인스턴스의 크기를 반환하여) MultiSet 직접 SkipList 방법을 사용하지 않고 MultiSet.__len__SkipList (class MultiSet(SkipList))를 확장 또는 구현 할 수 있습니다.

+0

클래스 MultiSet (SkipList)을 통해 상속을 시도했지만 똑같은 오류가 발생했습니다. – user1754499

관련 문제