[英]How do I debug PyDev's autocompletion server to figure out why it can't analyze a module?
[英]In PyDev, how can I get autocompletion for an instance returned by a method?
當我使用Class-A
方法返回Class-B
的實例時,PyDev不會為Class-B
的實例提供自動完成功能。 有沒有辦法使這項工作,所以我不會錯誤地輸入方法名稱或忘記參數? 否則,PyDev失去了很多價值!
我想知道你是否正在使用某些類/容器的組合來阻礙pydev預測返回值類型的能力。 這個超級簡單的例子適用於我的系統,我在inst
上獲得完整的代碼完成:
class A(object):
def __init__(self, params = None):
self.myBs = [B() for _ in range(10)]
def getB(self):
return self.myBs[5]
class B(object):
def foo(self):
pass
inst = A().getB()
# Auto-complete broken. PyDev thinks inst is a list.
assert isinstance(inst, B)
# Auto-complete working again.
在詳細說明之后,必須使用assert
語句來觸發PyDev的自動完成功能。
斷言isInstance在python中打破了“更好地請求寬恕而非許可”范例。
Pydev理解docstrings中特定裝飾器的類型提示。
以下是一組示例: http : //pydev.sourceforge.net/manual_adv_type_hints.html
class Foo(object):
def method(self):
pass
def otherMethod(self):
pass
def returnFoo():
return Foo()
"""@type fooInstance: Foo"""
fooInstance = returnFoo()
我沒有太多運氣返回類型(使用epydoc語法),但沒有嘗試太多,但無論分配給哪個對象都可以通過您期望的類型聲明,如上例所示。
您可以使用Sphinx doc評論:
def get_date(...):
""":rtype date"""
...
return date
有關更多信息,請參閱: http : //www.pydev.org/manual_adv_type_hints.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.