Hallo,
lässt sich folgendes irgendwie machen:
a = 10
b = (Verweis auf a) + 10
In obigem Beispiel wäre b == 20. Wenn dann an anderer Stelle
a = 15
zugewiesen bekommt, wäre b == 25.
Geht sowas? Oder ist das wieder so eine hirnrissige Idee von mir?
Gruß
mutetella
Lässt sich der Verweis auf eine Variable abspeichern?
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

Hallo.
Das kann man mit Deskriptoren (oder direkt per Properties) lösen. Vielleicht solltest du aber genauer beschreiben was du machen möchtest. Im ersten Moment hört sich deine Idee nicht besonders gut an.
Sebastian
Das kann man mit Deskriptoren (oder direkt per Properties) lösen. Vielleicht solltest du aber genauer beschreiben was du machen möchtest. Im ersten Moment hört sich deine Idee nicht besonders gut an.
Sebastian
Das Leben ist wie ein Tennisball.
Nein, das geht so nicht. Entweder du musst das ganze mit einer Funktion lösen:mutetella hat geschrieben:Geht sowas? Oder ist das wieder so eine hirnrissige Idee von mir?
Code: Alles auswählen
a = 10
b = lambda: a + 10
print b() # 20
a = 15
print b() # 25
Evtl. hilft dir auch sympy.
Code: Alles auswählen
from sympy import *
var("a")
b = a + 10
print b.evalf(subs={a: 10}) # 20
print b.evalf(subs={a: 15}) # 25
Unbedingt...! Keine Sorge, ich pack' das!Warhead hat geschrieben:Ehrliche Antwort? ...

Ich habe eine Liste mit absoluten Rechteckkoordinaten:EyDu hat geschrieben:Vielleicht solltest du aber genauer beschreiben was du machen möchtest.
abs = [[1, 23, 78, 120], [84, 23, 78, 120], [167, 23, 78, 120]]
Desweiteren habe ich eine Liste mit Text und relationalen Koordinaten:
rel = [['Text 1', 5, 5], ['Text 2', 5, 25], ['Text 3', 5, 45]]
Wenn ich nun das erste Rechteck zeichne, verwende ich die Koordinaten abs[0].
Zeichne ich dann den ersten Texteintrag, verwende ich
abs[0][0] + rel[0][1] für die x-Koordinate und
abs[0][1] + rel[0][2] für die y-Koordinate
Genauso geht es dann für Text 2 und Text 3.
In der Funktion, in der diese Dinge gezeichnet werden, möchte ich aber keine Koordinaten mehr ermitteln müssen. Natürlich könnte ich die Rechenarbeit in eine separate Funktion setzen, aber vielleicht gibt es ja eben auch eine Möglichkeit, nach der meine rel-Liste so oder so ähnlich ausschauen könnte:
rel = [['Text 1', (Verweis auf abs[0][0]) + 5, (Verweis auf abs[0][1]) + 5], ['Text 2', ...]
Ich hoffe, das jetzt auch verständlich erklärt zu haben...
Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

So wie's aussieht werde ich das wohl auch machen.Darii hat geschrieben:... du musst das ganze mit einer Funktion lösen ...
Kannte ich noch gar nicht. Werd' ich mir merken, ist aber für diesen Fall wohl nicht ganz das Richtige.Darii hat geschrieben:Evtl. hilft dir auch sympy.
Danke!
Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

Hast Du Recht!Darii hat geschrieben:Und beim nächsten Mal wäre es besser, wenn du gleich schreibst was du vorhast.
Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn ich mich richtig erinnere gibt es so eine Funktionalität seit Jahren in Common Lisp unter dem Namen Cells, davon gibt es auch Python-Ports. Ob das ne gute Idee ist, ist natürlich auf einem ganz anderen Blatt geschrieben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hach ja ... dann gebe ich doch mal eine Antwort auf die Frage "ob es sinnvoll ist oder nicht":
Nein, ist es leider nicht!
Und eine gute Idee ist es ebenfalls "auch" nicht
.
Nur weil man ein Blackberry Innenleben in eine iPhone Case prügeln könnte, ist es ja letztendlich wiederrum auch keine gute Idee.
Und für das Referece-Paradigma fällt mir bei besten Willem kein "wirkliches" Szenario ein, bei dem die Vorteile den von meinen Vorpostern genannten pythonischen/alternativen Wegen überwiegen würden.
Nein, ist es leider nicht!
Und eine gute Idee ist es ebenfalls "auch" nicht

Nur weil man ein Blackberry Innenleben in eine iPhone Case prügeln könnte, ist es ja letztendlich wiederrum auch keine gute Idee.
Und für das Referece-Paradigma fällt mir bei besten Willem kein "wirkliches" Szenario ein, bei dem die Vorteile den von meinen Vorpostern genannten pythonischen/alternativen Wegen überwiegen würden.
When altering one's own mind becomes as easy as programming a computer… What does it mean to be human?
Code: Alles auswählen
>>> abs = [[1, 23, 78, 120], [84, 23, 78, 120], [167, 23, 78, 120]]
>>> rel = [['Text 1', 5, 5], ['Text 2', 5, 25], ['Text 3', 5, 45]]
>>> [(ax+x, ay+y) for ((ax, ay, _, _), (_, x, y)) in zip(abs, rel)]
[(6, 28), (89, 48), (172, 68)]
Edit: Ja, hier wird abs verdeckt

Das Leben ist wie ein Tennisball.
Die Frage lässt mir auch keine Ruhe...EyDu hat geschrieben:Ich stelle mir allerdings die Frage, warum du offensichtlich zusammengehörige Daten nicht auch entsprechen ablegst.

Nachdem ich die absoluten Koordinaten in der Liste cache, um beim Navigieren über die Zeiträume nicht jedes mal alles neu berechnen zu müssen, erscheint mir diese Trennung ebenfalls sinnig, da bei einer Änderung der Fenstergröße wohl die absoluten, aber nie die relationalen Koordinaten geändert werden.
Oder bin ich einfach nur fantasielos? Bin für Anregungen sehr dankbar...!
Dein Beispiel habe ich verstanden, aber was meinst Du damit, dass abs verdeckt wird?EyDu hat geschrieben:Ja, hier wird abs verdeckt
Was meinst Du damit?Warhead hat geschrieben:Und für das Referece-Paradigma ...
Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

mutetella:
Ich frage mich ob man diese ganzen Dinge nicht als Objekte statt Listen realisieren kann. Dann würden die Objekte mit den relativen Koordinaten in Objekten mit den absoluten stecken und könnten diese nach dem "Versatz" fragen.
Code: Alles auswählen
In [29]: abs?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function abs>
Namespace: Python builtin
Docstring:
abs(number) -> number
Return the absolute value of the argument.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Abhängige Zellen in einer Tabellenkalkulation könnten so ein Szenario sein.Warhead hat geschrieben:Und für das Referece-Paradigma fällt mir bei besten Willem kein "wirkliches" Szenario ein, bei dem die Vorteile den von meinen Vorpostern genannten pythonischen/alternativen Wegen überwiegen würden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Wenn ich eine Kalenderansicht mit 7 Tagen habe, so habe ich 7 items mit absoluten und je item diverse item_parts mit relativen Koordinaten.BlackJack hat geschrieben:Ich frage mich ob man diese ganzen Dinge nicht als Objekte statt Listen realisieren kann.
Wenn ich dann eine Klasse Item() habe, so muss ich doch die diversen item_parts innerhalb der Klasse auch wieder in einer Liste speichern. Und die 7 Instanzen der Klasse Item() müssen doch auch irgendwo abgelegt sein (Liste?)...
Die Richtung, in die Du zeigst, fühlt sich für mich total gut an, nur habe ich keine konkrete Vorstellung, wie sich das realisieren ließe... Da bin ich einfach noch a bisl schwach auf der Brust... Kannst Du mir da noch ein bischen mehr 'Fleisch' hinwerfen...?

Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

Mhm, da bei TKs jedoch hinter einer "Zelle" i.d.R mehr Informationen als nur der reine Wert abgelegt wird, würde ich gerade "deswegen" hier von der pragmatischen Seite her an das Problem herangehen und es mittels Klassen lösen.Leonidas hat geschrieben:...
Abhängige Zellen in einer Tabellenkalkulation könnten so ein Szenario sein.
...
When altering one's own mind becomes as easy as programming a computer… What does it mean to be human?
@Warhead: Verstehe das Argument gegen "cells" an der Stelle nicht? Die Klassen, die die Tabellenzellen modellieren kennen dann halt auch das zugehörige `cell`-Objekt.
@BlackJack: Eine explizite Ablehnung der Verwendung von "cells" habe ich auch nicht geäussert. Ich bezog mich lediglich auf das von Leonidas vorgeschlagene "mir nicht vorstellebare Szenario (s.Post dafor)" von Zellen-Referenzen in einer Tabellenkalkulation.
Zuletzt geändert von Warhead am Mittwoch 7. Juli 2010, 13:00, insgesamt 1-mal geändert.
When altering one's own mind becomes as easy as programming a computer… What does it mean to be human?
ich weiss ja nicht welches GUI Framework du verwendest. Gibt es aber nicht die Möglichkeit jeden Tag als einzelnes Widget zu modelieren und dann könntest du doch jeden Tag absolut positionieren und jedes Item an diesem Tag wäre auf dem Widget auch absolute aber global gesehen relativ (kompliziert) 
Oder du veränderst für jeden Tag der Nullpunkt der Positionierung um dann die Elemente an diesem Tag relative zur Ecke zu platzieren.

Oder du veränderst für jeden Tag der Nullpunkt der Positionierung um dann die Elemente an diesem Tag relative zur Ecke zu platzieren.
wxPythonDaMutz hat geschrieben:ich weiss ja nicht welches GUI Framework du verwendest.
Anfangs hatte ich das so gelöst, jeder Tag war ein Panel in einem GridSizer... Dass das aber früher oder später (nicht nur wegen der Performance) im Wahnsinn endet, war mir bald klar...DaMutz hat geschrieben:Gibt es aber nicht die Möglichkeit jeden Tag als einzelnes Widget zu modelieren und ...

Ich ging dann dazu über, jeden Tag als Instanz der Klasse Day() darzustellen. Allerdings hatte ich auch damit bald Performance-Probleme, wenn beim Navigieren über die Monate ständig unzählige getter und setter stattfinden.
Inzwischen gibt es lediglich noch die Klasse View(), die alle Elemente einer Kalenderansicht, genauer gesagt die Koordinaten und Texte, in Dictionaries ablegt und aus diesen heraus zeichnet.
Ich wäre aber schon daran interessiert, wie Du das mit einem Widget (welches Art) modellieren würdest.
Könntest Du mir das näher erklären?DaMutz hat geschrieben:Oder du veränderst für jeden Tag der Nullpunkt der Positionierung ...
Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)
