En passant une instance d'une classe(un objet d'une classe) à une autre classe en python

Ce que je ne comprends pas c'est b = Bar(a). Que faut-il faire? Comment est-Barre prenant comme argument? L'habitude de dire que la Barre hériter d'une? Qu'est-ce que d'un Bar.Toto1 = Foo? Est-ce qu'Toto1 est une instance de la classe Foo()? Comment accéder Toto1 quand il est lui-même un objet? Quel est le sens de b.arg.variable? N'est-ce pas les moyens b a une méthode arg qui a une variable appelée variable? Le code suivant est à partir de la réponse

Pardonnez-moi si la question est naïve. Je n'ai pas pu trouver l'analyse des objets comme argument d'une autre classe. Une clarification serait génial!

  class Foo (object):
  #^class name  #^ inherits from object

      bar = "Bar" #Class attribute.

      def __init__(self):
          #        #^ The first variable is the class instance in methods.  
          #        #  This is called "self" by convention, but could be any name you want.


          self.variable="Foo" #instance attribute.
          print self.variable, self.bar  #<---self.bar references class attribute
          self.bar = " Bar is now Baz"   #<---self.bar is now an instance attribute
          print self.variable, self.bar  

       def method(self,arg1,arg2):
          #This method has arguments. You would call it like this : instance.method(1,2)
          print "in method (args):",arg1,arg2
          print "in method (attributes):", self.variable, self.bar


 a=Foo() # this calls __init__ (indirectly), output:
             # Foo bar
             # Foo  Bar is now Baz
 print a.variable # Foo
 a.variable="bar"
 a.method(1,2) # output:
               # in method (args): 1 2
               # in method (attributes): bar Bar is now Baz
 Foo.method(a,1,2) #<--- Same as a.method(1,2).  This makes it a little more explicit what the argument "self" actually is.

 class Bar(object):
     def __init__(self,arg):
          self.arg=arg
          self.Foo1=Foo()

 b=Bar(a)
 b.arg.variable="something"
 print a.variable # something
 print b.Foo1.variable # Foo
Vous devriez lire le tutoriel Python afin de vous familiariser avec les bases de Python.
J'ai lu qu' . Il n'y a pas une telle chose comme le passage d'un objet à une autre classe. Et je n'ai pu obtenir d'autres sources
Il est décrit ici. Tout est un objet en Python. Passage d'un objet à une classe n'est pas différent de passage d'un entier (comme dans cet exemple), une chaîne, ou quoi que ce soit d'autre.
Alors b est un objet de la classe Bar dont le constructeur est appelé pour initialiser b, un(Foo()) ou un Bar()? et qu'est-ce que b.arg.variable?
Je ne comprends pas ce que vous demandez. a a déjà été créé avec la ligne a = Foo(), et Foo __init__ l'appelait à l'époque. Lorsque Bar(a) est exécutée, puis la Barre __init__ sera appelée. Les commentaires dans votre posté exemple semblent déjà principalement de répondre aux questions que vous vous dites.

OriginalL'auteur qurius | 2014-06-14