我學習蟒蛇。我喜歡用幫助()或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. Python獲取參數
- 11. 從scala的類型獲取參數化類型?
- 12. 如何獲取泛型參數類型的類實例
- 13. 獲取通用類型的參數化類型
- 14. 如何從參數包中獲取所有參數的類型?
- 15. 如何從參數化類型的方法參數中獲取參數化類型的類?
- 16. 如何在Scala中獲取類型構造函數的參數?
- 17. 在可變參數函數中獲取傳入參數的類型
- 18. python:檢查函數的參數類型
- 19. Java的泛型獲得類型參數
- 20. 獲取類實現的通用接口的類型參數
- 21. Python Tornado獲取URL參數
- 22. python-requests:order獲取參數
- 23. 如何獲取參考的類型?
- 24. 如何獲取Kotlin中實際泛型參數的實際類型參數?
- 25. 如何獲取泛型方法的類型參數?
- 26. 獲取泛型類型參數的正確方法
- 27. 獲取泛型參數
- 28. 如何在運行時獲取參數的名稱類型?
- 29. 在set屬性中獲取參數的類型
- 30. 子類與一類參數類型,並在新類的靜態類型取代類型參數
這有什麼錯了'help'文本?閱讀代碼本身有什麼問題? – 2010-02-09 11:15:37
當然它是錯的。當你只是想調用一個方法時,你真的喜歡閱讀源代碼嗎? – leon 2010-02-12 02:41:58