我學習蟒蛇。我喜歡用幫助()或interinspect.getargspec得到的殼功能的信息。但無論如何,我可以得到參數/返回類型的函數。獲取類型的參數在python
4
A
回答
1
有一個叫type()
功能。
Here are the docs
你不能提前告訴什麼類型的函數將返回
>>> import random
>>> def f():
... c=random.choice("IFSN")
... if c=="I":
... return 1
... elif c=="F":
... return 1.0
... elif c=="S":
... return '1'
... return None
...
>>> type(f())
<type 'float'>
>>> type(f())
<type 'NoneType'>
>>> type(f())
<type 'float'>
>>> type(f())
<type 'int'>
>>> type(f())
<type 'str'>
>>> type(f())
<type 'float'>
>>> type(f())
<type 'float'>
>>> type(f())
<type 'NoneType'>
>>> type(f())
<type 'str'>
它通常是很好的做法是隻從一個函數返回一個類型的對象,但是Python並不強制在那你
4
如果你的意思是在函數的某個調用期間,函數本身可以通過調用type
來獲得它們的參數類型(並且肯定知道它返回的類型)。
如果從功能外的意思是,沒有:該功能可以與任何類型的參數調用 - 有些這樣的電話會產生錯誤,但沒有辦法事先知道他們將是哪些。
參數可以在Python 3中進行選擇性修飾,這種修飾的一種可能用途是表達有關參數類型(和/或其他約束)的一些信息,但語言和標準庫不提供關於這種裝飾可能會被使用。你不妨採用一種標準,其中這樣的約束在函數的文檔字符串結構化的方式,這將有被適用於任何版本的Python的優勢表達。
0
1
在3.4.2文檔https://docs.python.org/3/library/inspect.html,有什麼你到底需要(即獲取類型參數的函數)一提。
你首先需要定義你這樣的功能:
def f(a: int, b: float, c: dict, d: list, <and so on depending on number of parameters and their types>):
然後你可以使用formatargspec(*getfullargspec(f))
它返回一個很好的哈希值是這樣的:
(a: int, b: float)
+0
這個問題是從2010年...在3.4.2之前存在的。我會考慮刪除這個答案。 – rnevius 2014-11-06 12:35:52
相關問題
- 1. 獲取的參數類型的參數
- 2. 獲取Scala類型的類型參數
- 3. 獲取無參數類型
- 4. 獲取java.util.Map的泛型類型參數
- 5. 如何獲取泛型方法參數的類型參數類?
- 6. 在方法中獲取參數類型
- 7. 在宏實現中獲取弱類型的類型參數
- 8. 獲取泛型類的泛型參數的類型名稱
- 9. 獲取參數化類參數的類型?
- 10. HAXE獲取函數參數類型
- 11. 獲取函數參數類型
- 12. Python:獲取int類型的參數不可迭代錯誤
- 13. 如何獲取函數的參數類型和返回類型?
- 14. 如何從參數化的泛型類型獲取非參數化類型?
- 15. Python獲取參數
- 16. 如何從javax.lang.model.VariableElement獲取參數類型
- 17. 如何獲取類型參數?
- 18. 獲取參數類型C99的可變參數函數
- 19. 如何從類型參數的類型參數,內部scala宏中獲取類型參數?
- 20. 獲取的參數類型的參數包
- 21. 如何獲取基類的泛型類型參數?
- 22. 如何獲取泛型參數類型的類實例
- 23. 從scala的類型獲取參數化類型?
- 24. 獲取通用類型的參數化類型
- 25. Python獲取類型錯誤
- 26. 如何從參數包中獲取所有參數的類型?
- 27. 如何從參數化類型的方法參數中獲取參數化類型的類?
- 28. 如何在Scala中獲取類型構造函數的參數?
- 29. 類型參數 - 從獲取類型T的具體類型:IMyInterface的
- 30. 獲取泛型類型的參數的實例的屬性值
這有什麼錯了'help'文本?閱讀代碼本身有什麼問題? – 2010-02-09 11:15:37
當然它是錯的。當你只是想調用一個方法時,你真的喜歡閱讀源代碼嗎? – leon 2010-02-12 02:41:58