python查看對象的方法
1. 如何查看python對象的內容
如下代碼:
a = [1,2,3]
print(type(a))
print(a)
執行結果是:
<class 'list'>
[1, 2, 3]
也就是說通過print(type(對象名))可以輸出對象類型,print(對象名)可以輸出對象的詳細信息。
2. python查看對象內存地址的函數
在python中可以用id()函數獲取對象的內存地址。
#例如:
object = 1 + 2
print(id(object)) #4304947776
3. python如何查看一個對象有哪些屬性
使用dir命令,如
text="string"
dir(text)
4. python怎麼判斷一個對象的屬性
方法一:通過異常捕捉來實現邏輯
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class FooClass:
pass
k = FooClass()
try:
#do some thing you need
print k.att
except AttributeError as e:
#error: has not attribute
pass
方法二:調用hasattr方法
hasattr(object, name)
說明:判斷對象object是否包含名為name的特性(hasattr是通過調用getattr(ojbect, name)是否拋出異常來實現的)。
參數object:對象。
參數name:特性名稱。
>>> hasattr(list, 'append')
True
>>> hasattr(list, 'add')
False
方法三:使用dir方法
objlist = dir(k)
if 'att' in objlist:
#do some thing you need
print k.att
else:
#error: has not attribute
pass
5. python 如何查看object有哪些屬性值
dir([obj]):
調用這個方法將返回包含obj大多數屬性名的列表(會有一些特殊的屬性不包含在內)。obj的默認值是當前的模塊對象。
hasattr(obj, attr):
這個方法用於檢查obj是否有一個名為attr的值的屬性,返回一個布爾值。
getattr(obj, attr):
調用這個方法將返回obj中名為attr值的屬性的值,例如如果attr為』bar』,則返回obj.bar。
setattr(obj, attr, val):
調用這個方法將給obj的名為attr的值的屬性賦值為val。例如如果attr為』bar』,則相當於obj.bar = val。
6. 如何查看 Python 全部內置變數和內置函數
查看python內置函數的方法:1、打開Python IDLE編輯器;2、輸入" dir(__builtins__)"命令,按下回車鍵(Enter)得到Python全部內置變數和函數。
如何查看 Python 全部內置變數和內置函數?
1 如圖,打開 Python IDLE,我用的 是 Python 3.7 ,界面有個性定製。你的版本不同,界面有差異,但是操作方法應該是一樣的。
2 輸入 dir(__builtins__)
按下回車鍵(Enter)。
3 也可以:
import builtins
dir(builtins)
按下回車鍵(Enter)。
得到的結果和 dir(__builtins__) 是一樣的。
4 那麼這返回的一大堆到底是什麼東西?
可以看到,返回的結果是以 [ 開頭以 ] 結尾,說明是個列表,我們看看這列表裡一共有多少個元素?
輸入:
len(dir(__builtins__))
得到一個數字,154 ,說明當前版本的 Python 內置的常量和函數總數是 154 。
5 我們再重新輸出一下這個列表,逐個列印出來,更好看一點。
for item in dir(__builtins__):
print(item)
按下兩次回車鍵(Enter)。按照默認的字母順序,先是大寫字母 A-Z,然後是下劃線(_)開頭的,然後是小寫字母 a-z ,為什麼是這個順序?因為按照 ASCII 碼表,表示小寫字母的數字比表示大寫字母的數字要大,而表示下劃線(_)的數字居中,所以如此。
6 print() 就是 Python 3 的默認函數。我們試試:
print('Hello World')
builtins.print('Hello World')
__builtins__.print('Hello World')
運行結果如下,可以看到,結果是一樣的。
dir()本身就是 Python 的內置函數,利用它,我們可以查看對象的全部方法和屬性,對於掌控全局,了解全貌很有用。
課程推薦:Python快速教程之從入門到精通
7. python怎麼查看object 里的成員變數
首先通過一個例子來看一下本文中可能用到的對象和相關概念。
對於實現了__call__的類實例,這個方法會返回False。如果目的是只要可以直接調用就需要是True的話,不妨使用isinstance(obj, collections.Callable)這種形式。我也不知道為什麼Callable會在collections模塊中,抱歉!我猜大概是因為collections模塊中包含了很多其他的ABC(Abstract Base Class)的緣故吧:)
3.2. 獲取對象信息
getmembers(object[, predicate]):這個方法是dir()的擴展版,它會將dir()找到的名字對應的屬性一並返回,形如[(name, value), ...]。另外,predicate是一個方法的引用,如果指定,則應當接受value作為參數並返回一個布爾值,如果為False,相應的屬性將不會返回。使用is*作為第二個參數可以過濾出指定類型的屬性。
getmole(object):還在為第2節中的__mole__屬性只返回字元串而遺憾嗎?這個方法一定可以滿足你,它返回object的定義所在的模塊對象。
get{file|sourcefile}(object):獲取object的定義所在的模塊的文件名|源代碼文件名(如果沒有則返回None)。用於內建的對象(內建模塊、類、函數、方法)上時會拋出TypeError異常。
get{source|sourcelines}(object):獲取object的定義的源代碼,以字元串|字元串列表返回。代碼無法訪問時會拋出IOError異常。只能用於
8. python中調試怎麼查看對象內容
如果該對象已經實例化,可以通過類的內置屬性__dict__獲得該對象的內容。屬性名稱和屬性值分別作為字典的鍵和值。
如下例所示,
>>>class A(object):
... def __init__(self):
... self.b =1
... self.c =2
... def do_nothing(self):
... pass
...
>>> a = A()
>>> a.__dict__
{'c':2,'b':1}
9. 怎麼判斷 Python 對象是否包含某個屬性
頂級函數hasattr可以查看對象是否包含某某屬性,這里的屬性包括數據屬性和方法。getattr可以獲取屬性。
如下舉例說明。
a=[1,2,3]
print('列表有count屬性:%s'%hasattr(a,'count'))
print('列表有append屬性:%s'%hasattr(a,'append'))
print('列表有shift屬性:%s'%hasattr(a,'shift'))
print('列表的count屬性是方法:%s'%hasattr(getattr(a,'count'),'__call__'))
print('列表的append屬性是方法:%s'%hasattr(getattr(a,'append'),'__call__'))
classmyclass():
def__init__(self):
self.valattr=3
defmethod(self):
pass
mc=myclass()
print('myclass有valattr屬性:%s'%hasattr(mc,'valattr'))
print('myclass有method屬性:%s'%hasattr(mc,'method'))
print('myclass的valattr屬性是方法:%s'%hasattr(getattr(mc,'valattr'),'__call__'))
print('myclass的method屬性是方法:%s'%hasattr(getattr(mc,'method'),'__call__'))
10. python 如何根據一個對象的屬性值查詢該對象其他某個屬性值
在 Chrom 類中新增一個類函數,遍歷存儲列表並返回匹配的對象
大概寫了個樣例