簡體   English   中英

如何在pydev中聲明變量的類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM