[英]Python - convert <type 'instance'> to <type 'str'>?
[英]Python Type 'Instance' Convert
我正在使用內置的SNMP庫從服務器獲取一些數據。 現在,當我取回它時,它會顯示為
.>>> [ObjectName(1.2.6.1.4.1.111.1.4.1.7), Integer(21)]
當我打印出x[0]
(假裝x是該響應^)時,我看到1.2.6.1.4.1.111.1.4.1.7和21代表x[1]
但是當我type(x[0])
我得到<type 'instance'>
。
現在我的問題是,有沒有一種方法可以找到x[1]
的類型並將其轉換為該類型? ( x[0]
始終為字符串,但x[1]
可以為整數,字符串或浮點數,等等。
有沒有辦法讀取“ Integer”(在這種情況下)?
謝謝
編輯:
我認為我沒有清楚地描述它。 我真的很在乎x[0]
,我想將x[1]
轉換為它的內容,而無需修改從中獲取SNMP數據的類中的任何內容。 在此示例中,它是一個int
但可以是浮點數或字符串。 我正在尋找一種方法來確定該實例的類型,然后將其轉換為
之所以得到<type 'instance'>
是因為該庫使用的是老式類 。 您可以使用x.__class__
獲得類名。 在您的示例中, x[0].__class__.__name__
將是ObjectName
。
什么是對象以及打印該對象時顯示的內容不一定相關。
例:
>>> class Foo:
... def __str__(self):
... return 'my personal string'
>>>
>>> f = Foo()
>>> type(f)
<class '__main__.Foo'>
>>> print(f)
my personal string
因此,如果您想知道x[1]
的類型,則必須調用type(x[1])
。
並嘗試將x[0]
轉換為相同類型,請使用:
x = [ObjectName(1.2.6.1.4.1.111.1.4.1.7), Integer(21)]
converted = type(x[1])(x[0])
即使能否工作取決於x[0]
和x[1]
實際含義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.