Seite 1 von 1

Python uns Strings

Verfasst: Mittwoch 21. April 2010, 10:06
von mantus
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.

Verfasst: Mittwoch 21. April 2010, 10:16
von frabron
hwString ist eine Methode und keine Property. Schau mal genau hin, wie du hwString aufrufst ;)

Verfasst: Mittwoch 21. April 2010, 10:22
von mantus
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.

Verfasst: Mittwoch 21. April 2010, 10:26
von Darii
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.

Verfasst: Mittwoch 21. April 2010, 10:27
von frabron
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()