[Python-de] Klasseninstanzen

Fritz Cizmarov fritz at sol.at
Wed Feb 26 15:27:04 EST 2003


Am Wed, 26 Feb 2003 14:29:46 +0100
Schrieb robert schneider <mariachi at gmx.ch>:

> Hallo.

> Was passiert wenn ich die Variable 'file' in der Klasse definiere, vor
> der __init__ Funktion?
> 
> class ConvertFile:
>          file = "blah"
>          def __init__(self, file):
> 
> ++++++++++++++++++++
> 
> myConverter = ConvertFile(  )
> 
> Das kann ich auf keinen Fall benutzen, wenn ich in der __init__
> weitere Parameter ausser self benutze?
> 

Hallo Robert,

so wie du es schreibst, ist file ein Attribut der Klasse, nicht der
instanz, file ist in dem Falle für alle Instanzen identisch und wird bei
einer Änderung auch für alle Instanzen geändert. in der __init__ Methode
wird file als Parameter benutzt. Soll file als Attribut der Instanz
verwendet werden muss es heißen self.file wobei self stellvertretend für
die jeweilige Instanz gilt. Du kannst aber auch Parameter einer
Methode/Funktion mit Werten vorbelegen z.B.

class ConvertFile:
    def __init__(self, file="blah"):
	print file

>>> myConverter = ConvertFile()
blah
>>> myConverter = ConvertFile("not_blah")
not_blah


Gruß

Dookie




More information about the Python-de mailing list