Wie geht das schöner (oder besser)

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
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Hallo zusammen,
Ich arbeite wieder an meinem Forum und hab mir eure vorschläge aus
http://python.sandtner.org/viewtopic.php?t=1287
zu Herzen genommen ;-)

Jetzt hab ich hier eine Methode die mir nicht gefällt:

Code: Alles auswählen

def SELECT_Topic_Tree(self, Root_Id):
        try:
            self._DB_Cursor.execute("""SELECT %s_forum1.titel, %s_forum1.node_id, %s_forum1.author, %s_forum1.datestamp,
                                      IF ( %s_forum1.node_id = %s_forum1.root_id,
                                      round( (%s_forum1.rgt - 2) / 2, 0),
                                      round( ( (%s_forum1.rgt - %s_forum1.lft - 1) / 2), 0)
                                      ) AS children,
                                      COUNT(*) AS level

                                      FROM %s_forum AS %s_forum1,
                                      %s_forum AS %s_forum2
 
                                      WHERE %s_forum1.root_id = %s
                                      AND %s_forum2.root_id = %s

                                      AND %s_forum1.lft BETWEEN %s_forum2.lft AND %s_forum2.rgt

                                      GROUP BY %s_forum1.LFT"""% (self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  Root_Id,
                                                                  self.Forum_Id,
                                                                  Root_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id,
                                                                  self.Forum_Id) )
            Result = self._DB_Cursor.fetchall()
            return  Result
        except Error, Error_Var:
            raise PyForumDBError(Error_Var)

wie schreibe ich sowas ohne diese ständige Wiederholung?
Danke Andreas
Iopodx
User
Beiträge: 68
Registriert: Sonntag 5. September 2004, 08:58

ich würde einfach ein
self.Forum_Id*14

oder so versuchen!? Beim drucken gehts, warum sollte es net hier auch gehen?!
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Das funktioniert leider nicht. :(
Sonst noch Ideen?
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Das sollte aber schon gehen. Alternative wäre ein Dictionary, dass ist auch besser für Wartungsarbeiten am Code geeignet:

Code: Alles auswählen

>>> a=1
>>> "%i, %i"%((a,)*2)
'1, 1'
"%(id)i, %(id)i"%{"id":a}
'1, 1'
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Danke läuft jetzt!
Antworten