fCONV_AUSRICHTG is not defined - Why?

Thomas Passin list1 at tompassin.net
Tue Nov 7 15:56:58 EST 2023


On 11/7/2023 3:29 PM, MRAB via Python-list wrote:
> On 2023-11-07 19:20, Jim Schwartz via Python-list wrote:
>> Where do you define fCONV_AUSRICHTG? It must be initialized or defined 
>> somewhere. Did you leave out a statement from the python 2 version?
>>
> It's given its value here:
> 
>      (
>          fNAME,
>          fLG1,
>          fLG2,
>          fTYP,
>          fCONV_AUSRICHTG,
>          fENTRY_AUSRICHTG,
>          fTEXT_AUSRICHTUNG,
>          fHOLFUNKT,
>          fPRUEFFUNKT,
>          fPRUEF_ARG,
>      ) = list(range(10))


This construction is a sneaky way to assign index numbers to list 
entries.  A simplified example:

 >>> S1 = 'string 1'
 >>> S2 = 'string 2'
 >>> (fS1, fS2) = list(range(2))
 >>> fS1
0
 >>>
 >>> fS2
1



>>
>>> On Nov 7, 2023, at 1:06 PM, Thomas Passin via Python-list 
>>> <python-list at python.org> wrote:
>>>
>>> On 11/7/2023 12:47 PM, Egon Frerich via Python-list wrote:
>>>> I've no idea why this happens. In a module there are lists and 
>>>> definitions:
>>>>     Felder = [
>>>>         # Name       lg1  lg2 typ   Ausrichtung Holen Prüfen Prüfvorg
>>>>         ["Jahr", 4, 5, "u", "", "right", "center"],
>>>>         ["Monat", 2, 5, "u", "", "right", "center"],
>>>>         ["Tag", 2, 3, "u", "", "right", "center"],
>>>>         ["Belegnr", 5, 7, "s", "", "right", "center"],
>>>>         ["Bank", 2, 4, "u", "", "center", "center"],
>>>>         ["Art", 2, 3, "u", "", "center", "center"],
>>>>         ["Aufg", 2, 4, "u", "", "center", "center"],
>>>>         ["Text", 25, 25, "s", "-", "left", "left"],
>>>>         ["Ergänzung", 12, 12, "s", "-", "left", "left"],
>>>>         ["Betrag", 13, 13, "s", "", "right", "right"],
>>>>         ["W", 1, 2, "s", "", "center", "center"],
>>>>         ["WBetrag", 7, 7, "s", "", "right", "right"],
>>>>         ["Kurs", 6, 6, "s", "", "right", "right"],
>>>>     ]
>>>>     "Reihenfolge in der Dimension 1"
>>>>     (
>>>>         fJAHR,
>>>>         fMONAT,
>>>>         fTAG,
>>>>         fBELEGNR,
>>>>         fBANK,
>>>>         fART,
>>>>         fAUFGABE,
>>>>         fTEXT,
>>>>         fTEXTERG,
>>>>         fBETRAG,
>>>>         fWAEHRUNG,
>>>>         fBETRAGinWAEHRUNG,
>>>>         fUMRECHNUNGSKURS,
>>>>     ) = list(range(13))
>>>>     "Reihenfolge in der Dimension 2"
>>>>     (
>>>>         fNAME,
>>>>         fLG1,
>>>>         fLG2,
>>>>         fTYP,
>>>>         fCONV_AUSRICHTG,
>>>>         fENTRY_AUSRICHTG,
>>>>         fTEXT_AUSRICHTUNG,
>>>>         fHOLFUNKT,
>>>>         fPRUEFFUNKT,
>>>>         fPRUEF_ARG,
>>>>     ) = list(range(10))
>>>> Two lines with  test statements follow and the statement which 
>>>> produces an error:
>>>>     print(Felder)
>>>>     print(fJAHR, fNAME, fTYP, fCONV_AUSRICHTG)
>>>>     akette = "%" + "%".join(
>>>>         ["%s%s%s " % (i[fCONV_AUSRICHTG], i[fLG2], i[fTYP]) for i in 
>>>> Felder])
>>>> The traceback shows:
>>>> $ python3 testGeldspurGUI.py
>>>> [['Jahr', 4, 5, 'u', '', 'right', 'center'], ['Monat', 2, 5, 'u', 
>>>> '', 'right', 'center'], ['Tag', 2, 3, 'u', '', 'right', 'center'], 
>>>> ['Belegnr', 5, 7, 's', '', 'right', 'center'], ['Bank', 2, 4, 'u', 
>>>> '', 'center', 'center'], ['Art', 2, 3, 'u', '', 'center', 'center'], 
>>>> ['Aufg', 2, 4, 'u', '', 'center', 'center'], ['Text', 25, 25, 's', 
>>>> '-', 'left', 'left'], ['Ergänzung', 12, 12, 's', '-', 'left', 
>>>> 'left'], ['Betrag', 13, 13, 's', '', 'right', 'right'], ['W', 1, 2, 
>>>> 's', '', 'center', 'center'], ['WBetrag', 7, 7, 's', '', 'right', 
>>>> 'right'], ['Kurs', 6, 6, 's', '', 'right', 'right']]
>>>> 0 0 3 4
>>>> Traceback (most recent call last):
>>>>   File "/home/egon/Entw/Geldspur/geldspur/testGeldspurGUI.py", line 
>>>> 15, in <module>
>>>>     from tests.testU2 import testU2
>>>>   File "/home/egon/Entw/Geldspur/geldspur/tests/testU2.py", line 9, 
>>>> in <module>
>>>>     from gui.GUI_Konfig import GUIcfg
>>>>   File "/home/egon/Entw/Geldspur/geldspur/gui/GUI_Konfig.py", line 
>>>> 11, in <module>
>>>>     class GUIcfg:
>>>>   File "/home/egon/Entw/Geldspur/geldspur/gui/GUI_Konfig.py", line 
>>>> 90, in GUIcfg
>>>>     ["%s%s%s " % (i[fCONV_AUSRICHTG], i[fLG2], i[fTYP]) for i in 
>>>> Felder])
>>>>   File "/home/egon/Entw/Geldspur/geldspur/gui/GUI_Konfig.py", line 
>>>> 90, in <listcomp>
>>>>     ["%s%s%s " % (i[fCONV_AUSRICHTG], i[fLG2], i[fTYP]) for i in 
>>>> Felder])
>>>> NameError: name 'fCONV_AUSRICHTG' is not defined
>>>> You see "Felder" and with "0 0 3 4" the correct value 4 for 
>>>> fCONV_AUSRICHTG. But there is the NameError.
>>>> What does <listcomp> mean? Is there a change from python2 to python3?
>>>
>>> You are using a syntax that I don't understand, but "listcomp" means 
>>> a list comprehenson.
>>>
> 



More information about the Python-list mailing list