2015-02-23 48 views
7

我來自MATLAB並且習慣於使用whos命令獲取形狀和數據類型等可變信息,並且經常以特定名稱(例如whos Var1)使用此信息。我如何檢查IPython中的一個特定對象

我知道我也可以在IPython中使用whos;但是,當我有很多變量和對象時,我希望能夠一次檢查一個變量和對象,並且MATLAB語法失敗。

a = [1,2,3] 

whos a 
No variables match your requested type. 

我在Enthought Canopy IDE中使用IPython shell。

是否有這樣的命令?

感謝, 亞倫

+1

什麼...什麼版本的Python是誰在?我從來沒有聽說過...你可以使用'array.shape'來獲得形狀,如果你正在使用numpy ... – 2015-02-23 16:31:50

+0

謝謝,和v2.7在樹冠IDE – 2015-02-23 16:33:08

回答

14

命令whos和linemagic %whos可在IPython中,而不是標準的Python的一部分。這兩個都會列出當前變量以及關於它們的一些信息。您可以指定type進行過濾,例如,

whos 
Variable Type Data/Info 
---------------------------- 
a   list n=3 
b   int  2 
c   str  hello 


whos list 
Variable Type Data/Info 
---------------------------- 
a   list n=3 

相關命令who或linemagic %who會產生短名單,只顯示變量名:

who 
a 

who list 
a  

要檢查特定變量的?是你在找什麼:

a? 

Type:  list 
String form: [1, 2, 3] 
Length:  3 
Docstring: 
list() -> new empty list 
list(iterable) -> new list initialized from iterable's items 

如果你想要更多關於對象,比如一個函數。您可以使用兩個?的形式word??獲得完整的對象幫助。例如,爲了獲得該類型的完整文檔int你可以使用:

int?? 
Type:  type 
String form: <type 'int'> 
Namespace: Python builtin 
Docstring: 
int(x=0) -> int or long 
int(x, base=10) -> int or long 

Convert a number or string to an integer, or return 0 if no arguments 
are given. If x is floating point, the conversion truncates towards zero. 
If x is outside the integer range, the function returns a long instead. 

If x is not a number or if base is given, then x must be a string or 
Unicode object representing an integer literal in the given base. The 
literal can be preceded by '+' or '-' and be surrounded by whitespace. 
The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to 
interpret the base from the string as an integer literal. 
>>> int('0b100', base=0) 
4 
+0

哈哈我不知道這是什麼+1教我新的東西...不是我可能會用它 – 2015-02-23 16:35:10

+0

@JoranBeasley你和我都。我的第一反應是「誰呢?」 ...然後便士下降了:*我* Python – mfitzp 2015-02-23 16:45:47

+0

'?'正是我所期待的。謝謝 – 2015-02-23 16:46:19

相關問題