[英]how to declare variable's type in pydev?
假設有一組Map1,Map2,Map3,...都是從BaseMap擴展的,並且我使用了一些反射機制來獲取子Map的實例。 我想動態獲取這些類之一的實例並將其存儲在變量m
,並讓pydev將類型識別為BaseMap,以便可以在其上使用單詞完成功能。
我發現一種解決方案是添加代碼
if False:
m = BaseMap(0,0,0)
在分配m
和使用它之前。 if條件內的行將永遠不會執行,但它聲明m
是BaseMap類型的對象。
這可能看起來很傻,但是確實有效。 還有其他方法嗎?
您可以使用assert isinstance(...)
在pydev中的變量上獲取自動補全功能,否則pydev無法猜測正確的類型。
說你的代碼是:
m = getAttr(someThing, 'someAttr')
m.*no autocompletion*
pydev無法知道m
的類型,因此不會顯示自動補全。
嘗試:
m = getAttr(someThing, 'someAttr')
assert isinstance(m, BaseMap) # or whatever class it is
m.*pydev shows autocompletion*
它有點hacky ,但是可以工作(也不會造成傷害)。
這個問題類似於這篇文章: Eclipse pydev自動建議在某些情況下不起作用
已經提出了一個很好的答案(使用斷言)。 另一個解決方案是使用此鏈接中描述的構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.