[size=14px]
比如, 我有一個"人類"
class 人類(object):
def __init__(self,姓名):
self.姓名 = 姓名
def 打電話(self,對方姓名):
print(self.姓名,'is talking to...',對方姓名)
list_姓名 = ['alice','bob','clark']
dict_實體 = {} # 用來存放所有的物件
for 姓名 in list_姓名:
實體_人 = 人類(姓名)
dict_實體[姓名] = 實體_人
dict_實體['bob'].打電話('我') # 這里是可以呼叫到"人類"中的打電話方法的,但是,打代碼時,卻不會自動提示任何該類(或物件)擁有的屬性和方法,這個問題該怎么解決?[/size]
uj5u.com熱心網友回復:
你這都是些啥啥 啊uj5u.com熱心網友回復:
實際上沒有很好的辦法,這個就是動態語言的缺點之一,靜態分析困難。在腳本沒有運行的之前,物件實際上都沒有生成,同時又沒有靜態的型別描述IDE是無法推斷的。
目前IDE對內置物件的代碼補全支持還比較好。
只能用一些變通的方法比如

為了這個問題我寫過一篇博客,簡要地說了一此辦法。
http://blog.csdn.net/xpresslink/article/details/76572442
uj5u.com熱心網友回復:
Python3 內部全部采用unicode了所有可以直接用中文做識別符號了。
uj5u.com熱心網友回復:
你這都是些啥啥 啊
Python3 內部全部采用unicode了所有可以直接用中文做識別符號了。
這么寫,肯定被其他同事打死了
uj5u.com熱心網友回復:
我是題主, 請不要在意我代碼中用的是中文還是英文,請關注問題本身! 中英日法德文隨便用什么都只是個皮毛, 在編譯器看來沒有任何區別! 爭論這些不是我這個問題的本意uj5u.com熱心網友回復:
實際上沒有很好的辦法,這個就是動態語言的缺點之一,靜態分析困難。
在腳本沒有運行的之前,物件實際上都沒有生成,同時又沒有靜態的型別描述IDE是無法推斷的。
目前IDE對內置物件的代碼補全支持還比較好。
只能用一些變通的方法比如
為了這個問題我寫過一篇博客,簡要地說了一此辦法。
http://blog.csdn.net/xpresslink/article/details/76572442
非常感謝 xpresslink 的回答! 我注意到, 您又把 字典中的bob這個實體,重新由 bob變數來指向它, 這樣其實有點繞了一個圈, 因為我為什么一開始避免用 三個人的姓名直接從類生成實體, 是為了"批量"生成實體. 比如, 假設我有100個人, 那么就不可能把每個人的名字來作為實體的變數名, 這樣要寫100條生成實體的陳述句. 所以我就使用了for回圈來迭代生成實體物件, 那么批量生成的實體的變數名怎么處理呢? 只能用索引來代表, 所以就用了字典的形式.
如果python對批量生成的物件, 無法獲取到屬性和方法的自動提示,還是蠻遺憾的.
uj5u.com熱心網友回復:
python3.6新增了代碼提示功能, 變數名后面加冒號加型別。for 姓名 in list_姓名:
實體_人: 人類 = 人類(姓名)
dict_實體[姓名] = 實體_人
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/103648.html
上一篇:Python入門其實很簡單,從3個、4類、5大、6種入手即可
下一篇:關于pandas中cor()函式
