2016-07-28 42 views
0

Ich arbeite mit der Rossbag Paket, das von ROS.org zur Verfügung gestellt wird. Mein Code sieht aus wieKopieren Instanz der Klasse von Paket

import rosbag 

bag_path = "/path/to/bag/file.bag" 
bag = rosbag.Bag(bat_path) 

Und was ich will, ist zu tun, richtig die Instanz Tasche zu kopieren, weil ich die Daten in zwei verschiedenen Threads verarbeiten möchten.

Unfortunatelly, die Klasse Bag bietet keine ordnungsgemäße Funktion copy().

Also, wie kopiere ich eine Instanz einer externen Klasse richtig?

Vielen Dank für Ihre Unterstützung.

Antwort

1

Das Paket copy kann zum Erstellen neuer und identischer Instanzen von benutzerdefinierten Klassen verwendet werden.

import copy 

class TestClass: 
    def __init__(self, a, b, c): 
     self.a = a 
     self.b = b 
     self.c = c 

x = TestClass(1, 2, 3) 
y = copy.copy(x) 

x und y haben genau die variablen Eigenschaften speichern, aber wenn Sie x.a ändern, y.a nicht beeinträchtigt werden.

+0

Vielen Dank! Genau das, was ich haben wollte! – themacco