| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 |  
# -*- coding: utf8 -*-
 
import numpy
import copy
 
class Referentiel(numpy.ndarray):
    def __new__(subtype, nom_element, data):
 
        try:
            assert len(data) == 6
        except AssertionError:
            raise ValueError, u"Erreur : l'argument 'data' de la classe 'Referentiel' doit etre une liste de longueur 6"
 
        if isinstance(data, Referentiel):
            return data
 
        arr = numpy.array([float(i) for i in data])
        return numpy.ndarray.__new__(Referentiel, shape=6, dtype=float, buffer=arr)
 
    def __init__(self, nom_element, data):
 
        self.element = nom_element
 
 
if __name__ == "__main__":
 
    ref = Referentiel("test", [1, 2, 3, 4, 5, 6])
    ref2 = copy.deepcopy(ref)
 
    if hasattr(ref, "element"): print "ref a un attribut 'element'"
    if not hasattr(ref2, "element"): print "ref2, copie de ref, n'a pas d'attribut 'element'" | 
Partager