Hallo,
ich habe folgendes Problem:
Ich habe für einen I2C-Extender eine Klasse AddressClass erstellt mit den Klassenvariablen self.Name, self.Address, self.PinNr erstellt.
Nun möchte ich die Adressen über eine Funktion readAddress( addr ) auslesen und muss dazu auf die Variablen Address und PinNr der übergebenen Adressen-Instanz zugreifen, was auch mit addr.Address bzw. addr.PinNr funktioniert. Jedoch würde ich gerne wie in anderen Programmiersprachen den Klassentyp des Parameters addr angeben um zu verhindern, dass z.B. die Funktion readAddress( addr ) mit einer Zahl als Parameter aufgerufen wird und vor allem, weil Visual Studio angesprochenen Klassenvariablen und Funktionen der nicht überprüfen kann, wenn es die Klasse des angesprochenen Parameters addr nicht kennt. Tippfehler oder falsche Bezeichnungen fallen so leider erst während des Kompilierens auf.
Ich hoffe man versteht mein Problem Ich suche eigentlich nur so was ähnliches wie readAddress( addr:AddressClass ) oder wie in C++ readAddress( AddressClass addr ).
Gibt es so etwas?
Liebe Grüße
Marcell, euer Leiter für Kundenzufriedenheit bei 1&1 ;-P
Klassentyp von Parameter einer Funktion festlegen
- __blackjack__
- User
- Beiträge: 13112
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Marcell D'Avis: Du möchtest kein Python verwenden. Vielleicht magst Du ja Java oder C#.
Zudem lass bitte den unsinnigen `Class`-Zusatz bei `AddressClass` weg und halte Dich an die bei Python üblichen Namenskonventionen: klein_mit_unterstrichen bei allem ausser Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase).
Dir wird hier jetzt wahrscheinlich irgendjemand noch mit Typannotationen kommen, allerdings sind das nette Absichtserklärungen, die aber nicht verhindern das jemand falsche Typen übergibt, oder passende Werte die aber einen anderen Typ haben als Du zu erzwingen versuchst.
Die drei Attribute sind übrigens ziemlich sicher/hoffentlich *keine* Klassenattribute sondern Instanzattribute.
Das ein Datentyp `Address` ein Attribut mit dem Namen `address` hat, ist übrigens ein bisschen komisch.
Zudem lass bitte den unsinnigen `Class`-Zusatz bei `AddressClass` weg und halte Dich an die bei Python üblichen Namenskonventionen: klein_mit_unterstrichen bei allem ausser Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase).
Dir wird hier jetzt wahrscheinlich irgendjemand noch mit Typannotationen kommen, allerdings sind das nette Absichtserklärungen, die aber nicht verhindern das jemand falsche Typen übergibt, oder passende Werte die aber einen anderen Typ haben als Du zu erzwingen versuchst.
Die drei Attribute sind übrigens ziemlich sicher/hoffentlich *keine* Klassenattribute sondern Instanzattribute.
Das ein Datentyp `Address` ein Attribut mit dem Namen `address` hat, ist übrigens ein bisschen komisch.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
@Marcell D'Avis: Du mußt Dich auf jede Programmiersprache einlassen und solltest nicht versuchen, alle Konzepte einer anderen Sprache darauf zu übertragen. Dass Du `readAddress` mit einer Zahl versuchst aufzurufen, passiert ja nur, wenn Du nicht weißt was `readAddress` als Parameter erwartet, Du also Programmieren durch Raten ersetzt.
Gegen Tippfehler hilft, dass praktisch jeder vernünftige Editor heutzutage eine Autovervollständigung für bereits bekannte Namen hat.
Gegen Tippfehler hilft, dass praktisch jeder vernünftige Editor heutzutage eine Autovervollständigung für bereits bekannte Namen hat.
-
- User
- Beiträge: 2
- Registriert: Samstag 11. August 2018, 22:38
@__blackjack__ und @Sirius3:
Okay daran muss ich mich wohl gewöhnen...
Ich werde es in Zukunft versuchen
Ja stimmt ^^
Ich habe bis jetzt Notepad++ und Visual Studio ausprobiert. Welche Editoren könnt ihr denn für Python empfehlen?
Auf jeden Fall vielen Dank für eure schnellen Antworten und einen schönen Tag
Marcell
Okay daran muss ich mich wohl gewöhnen...
~__blackjack__halte Dich an die bei Python üblichen Namenskonventionen
Ich werde es in Zukunft versuchen
~ __blackjack__Die drei Attribute sind übrigens ziemlich sicher/hoffentlich *keine* Klassenattribute sondern Instanzattribute.
Ja stimmt ^^
~Sirius3Gegen Tippfehler hilft, dass praktisch jeder vernünftige Editor heutzutage eine Autovervollständigung für bereits bekannte Namen hat.
Ich habe bis jetzt Notepad++ und Visual Studio ausprobiert. Welche Editoren könnt ihr denn für Python empfehlen?
Auf jeden Fall vielen Dank für eure schnellen Antworten und einen schönen Tag
Marcell
- sls
- User
- Beiträge: 480
- Registriert: Mittwoch 13. Mai 2015, 23:52
- Wohnort: Country country = new Zealand();
Da du u.a. eh eine IDE ausprobiert hast, versuche doch mal PyCharm. Das ist IMO *die* IDE für Python überhaupt.Marcell D'Avis hat geschrieben: ↑Sonntag 12. August 2018, 17:18 Ich habe bis jetzt Notepad++ und Visual Studio ausprobiert. Welche Editoren könnt ihr denn für Python empfehlen?
When we say computer, we mean the electronic computer.
Eventuell schau dir mal Visual Studio Code mit der Python Extension an.
Wenn du von Visual Studio kommst ist das vielleicht ein Vorteil.
Des Weiteren ist Sublime Text ein sehr bekannter Editor zum Programmieren.
Wenn du von Visual Studio kommst ist das vielleicht ein Vorteil.
Des Weiteren ist Sublime Text ein sehr bekannter Editor zum Programmieren.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png