Folgendes PRoblem: ich importiere ein modul von einer klasse dieses moduls erzeuge ich ein objekt in einem anderen, vor der objekterzeugung vollzogenen import steckt eine funktion diese funktion will objekt.methode ausführen, aber dann kommt der fehler. er kommt auch, wenn ich in der funktion "global objekt" stehen habe. i don't get it
>er kommt auch, wenn ich in der funktion "global objekt" stehen habe.
das gibt zu denken, dass die von dir vermutete Ursache keine ist.
probier mal ein Minimalbeispiel aus ala:
def x():
    global y
    y = 1
x()
welche Exception wird geschmiessen?
  danke - keine, da keine importe erfolgen. hier mal ein beispiel:
main.py:
import module
import function
ob_ject = module.cl_ass()
ob_ject.me_thod()
function.function()
module.py:
class cl_ass(object):
  def __init__(self):
    pass
  def me_thod(self):
    print "hello"
function.py:
def function():
  global ob_ject
  print type(ob_ject)
File "function.py", line 7, in function
    print type(ob_ject)
NameError: global name 'ob_ject' is not defined
  hmm bist du sicher, dass es sowas wie global namespace auch modulextern gibt? wenn ich van rossum wäre, hätte ich 2 mal überlegt ob so etwas haben will ... was passiert wenn du obj_ect in function-module vorher im globalen namespace einfach None zuweist? function.py: ob_ject = None def function(): global ob_ject print type(ob_ject)
vielleicht hat es auch was mit bindungszeitpunkt eines
objektes zu seinem namem zu tun.
wie in diesem beispiel:
def mylist(lst = []):
    lst.append(1)
    return lst
mylist()
mylist()
...
  hello <type 'NoneType'> Also kann ich einem importierten Modul ein Objekt nicht bekanntmachen? Oder ist es sowieso besser, das Objekt der Funktion zu übergeben. Ursache ist, dass ich versuche, das Programm zu unterteilen. Morgen geht's weiter. Danke für dein Interesse.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
  
  Bestehender Account
  
  
  
  Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
  Noch kein Account? Hier anmelden.