2010-06-30 2 views
3

Windows XP 시스템에서 Iron Python과 Eclipse 및 PyDev를 사용하고 있습니다. 함수 인수에 대해 Eclipse + PyDev로 자동 완성 받기

myObject1 = MyClass1() 
myObject2 = MyClass2(myObject1) 

두 클래스 정의

다른 모듈, myclass1.py 및 myclass2.py에 나는 기대했다 : 나는 자체가이 같은 다른 클래스의 실체화 인수로 오브젝트를 클래스 정의를 myclass2에서 자동 완성 기능을 사용하면 myObject1에서 자동 완성 기능을 사용할 수 있습니다. 즉, myclass2.py 파일에 다음과 같이 입력 할 수 있습니다.

""" myclass2.py """ 
class MyClass2(): 
    def __init__(self, myObject1): 
     self.myObject1 = myObject1 
     self.myObject1. <============== would like auto code completion here 

이 작업을 수행 할 수 있습니까?

감사합니다.

+0

나는 누군가가 이것에 대한 확실한 대답으로 소리를 지르기를 정말로 바랬다. 몇 사람이이 질문에 호감을 보였으므로 자신 만의 다른 것을 알아 내면 업데이트해야합니다. –

답변

1

PyDev/Eclipse에서 Jython을 사용하여이 문제에 대해서도 궁금해했습니다. 코드 완성은 MyClass2의 다른 곳에서 사용한 MyClass1 메서드에서는 작동하지만 전체 API에서는 작동하지 않습니다. Eclipse에서 메소드를 추가하거나 제거 할 수 있기 때문에 Eclipse가 특정 메소드가 있는지 또는 메소드 목록이 완전한지 보장 할 수 없기 때문입니다. 예를 들어

: 코드 완성이 당신에게 B 법을 보여 주었다 경우

>>> class a: 
...  def b(self): 
...   print('b') 
... 
>>> anA = a() 
>>> anA.b() 
b 
>>> del a.b 
>>> anA.b() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: a instance has no attribute 'b' 

그래서() 여기에, 그것은 잘못된 것입니다.

마찬가지로

, 메소드 B를 보이지 않았다

>>> class a: 
...  pass 
... 
>>> anA = a() 
>>> anA.b() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: a instance has no attribute 'b' 
>>> def b(self): 
...  print('b') 
... 
>>> a.b = b 
>>> anA.b() 
b 

그래서 코드 완성() 잘못된 것입니다.

내가 잘못 생각할 수는 있지만 확실한 추측이라고 생각합니다. :)

0

원본 폴더에 __init__.py이 있습니까? 그것은 비어있을 수 있지만, 파이썬이 자동 완성을 목적으로 클래스에 포함 된 파일을 읽을 수 있도록 모든 폴더에 존재해야합니다.

+1

예, 모든 폴더에 빈 __init__.py 파일이 있습니다. Eclipse는 새 패키지를 만들 때 멋지게 만듭니다. – RPG

1

개체를 생성하는 스팸 라인 (if False ...)을 사용하면 내 Pydev 2.5에서 정상입니다.

""" myclass2.py """ 
    class MyClass2(): 
    def __init__(self, myObject1): 
     if False : myObject1 = MyClass1() 
     self.myObject1 = myObject1   
     self.myObject1. <============== would like auto code completion here 
+0

아마도 param 유형에 대해 docs를 사용하고있을 수 있습니다. https://www.pydev.org/manual_adv_type_hints.html –

관련 문제