Python uns Strings

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mantus
User
Beiträge: 17
Registriert: Freitag 4. Dezember 2009, 09:08

Hi ich hab ein Klasse gebaut in der es folgende members gibt

Code: Alles auswählen

    def getElfPath(self):
        elfPath = str(self.ui.projDir.text())
        elfPath.replace('\\', '/')
        elfPath = elfPath.rpartition('/')[0] + 'obj/arch_' + str(self.hwString) + '/Test.elf'
        print elfPath
        return elfPath
    
    def hwString(self):
        if self.ui.radioType1.isChecked():
            return "Type1"
        elif self.ui.radioType2.isChecked():
            return "Type2"
        return "Type3"
als string für elfPath bekomm ich dann
C:/Test/arch_<bound method Dialog.hwString of <gui.UI.Dialog object at 0x00E1D9C0>>/Firmware.elf
ich verstehs einfach nicht ... einfache dinge schaff ich in python irgendwie nicht. ich will ja nur das er den string der im return steht in den anderen String einfügt, wieso will er da irgendwie gleich das ganze Objekt reinquetschen.
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

hwString ist eine Methode und keine Property. Schau mal genau hin, wie du hwString aufrufst ;)
mantus
User
Beiträge: 17
Registriert: Freitag 4. Dezember 2009, 09:08

hm okay das bei python beides möglich ist war mir nicht klar :/

also ist class.member = Adresse des member egal ob function oder nicht
und class.member() ist wirklich der aufruf der member function.

:/ python erlaubt einfach zuviel :D sorry hat sich damit erledigt.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

mantus hat geschrieben:also ist class.member = Adresse des member egal ob function oder nicht
Genauer gesagt, es *ist* das Attribut, mit Speicheradressen arbeitest du nicht. Es geschieht hinter den Kulissen u.U. auch etwas mehr als ein simpler Abruf des Attributs, aber das geht jetzt erstmal zu weit.
und class.member() ist wirklich der aufruf der member function.
Jein. Im Endeffekt sind es zwei Schritte. class.member -> Anfordern des Attributs. () -> Funktionsaufruf.
Zuletzt geändert von Darii am Mittwoch 21. April 2010, 10:29, insgesamt 1-mal geändert.
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Das ist z.B. in Javascript nicht anders und ist eine klasse Sache:

Code: Alles auswählen

def foo():
    return 'bar'

baz = foo

print baz()
Antworten