2016-09-22 3 views
1

In meinem Python-Code, habe ich diesen Aufruf in einem beschränkten Verfahren:Druckwerte in Python Debugger

instances = instance_objects.InstanceList().get_by_host(ctxt, self.host) 

Als ich mit dem Python-Debugger (PDB) debuggen und ich ausgeben p instances bekomme ich diese Ausgabe:

InstanceList(objects=[Instance(bdfbf658-da32-445d-9560-56d496abcb9d)]) 

Wenn ich p instances.objects Ausgabe erhalte ich diese Ausgabe:

[Instance(
access_ip_v4=None, 
access_ip_v6=None, 
architecture=None, 
auto_disk_config=False, 
availability_zone=None, 
cell_name=None, 
cleaned=False, 
vcpus=1, 
)] 

Wie kann ich p Rint den Wert von vcpus in Pdb?

+0

1 nicht der Wert ist? Es scheint, als ob Sie diese Daten erhalten, wenn Sie 'p instances.objects' ausgeben – hammygoonan

+0

Ja, Sie haben Recht. Aber ich möchte nur den Wert 1 ausgedruckt haben. Die Sache ist, dass diese "Instanz" viel länger ist als das, was ich tatsächlich aufgeführt habe. Was Sie sehen, ist nur ein kleiner Teil davon. – RichArt

+0

Btw: ist es ein Diktat in einer Liste? Oder ein Tupel in einer Liste? – RichArt

Antwort

1

Versuchen

p instances.objects[0].vcpus 
+0

Das hat den Trick, vielen Dank! – RichArt

+0

Nur eine kurze Frage: Ist es ein Tupel in einer Liste? Ich meine, es kann kein Diktat in einer Liste sein, weil ein Diktat geschweifte Klammern hat. Recht? – RichArt

+0

Es sieht wie eine Instanz einer Klasse namens "Instance" aus. Es sieht so aus, dass 'vcpus' ein Attribut der Klasse ist. Was ist die Ausgabe von 'p type (instances.objects [0])'? –