gibt es eine möglichkeit die "attribute" eines moduls A nicht zugänglich zu machen für andere module, die A importieren?
für klassen ist das ja kein thema, aber bei modulen bin ich ratlos.
könnte so was nämlich gut gebrauchen.
vielen dank

elch
Leonidas hat geschrieben:...
Wusste ich noch gar nicht, aber man sollte *-Imports sowieso nicht machen.
Code: Alles auswählen
>>> dir()
['__builtins__', '__doc__', '__name__']
>>> len(dir())
3
>>> from Tkinter import *
>>> len(dir())
177
>>> from qt import *
>>> len(dir())
476
>>> from gtk import *
>>> len(dir())
1410
Erwin hat geschrieben:1410?
Wahnsinn.
Erwin hat geschrieben:Also am besten alles extra importieren?
Dann bekommt man eigentlich auch automatisch mit, wenn etwas doppelt vorhanden ist, also Namentlich?
Code: Alles auswählen
import Image
from Tkinter import Image
Code: Alles auswählen
import Tkinter as tk
import Image
Code: Alles auswählen
import qt
Code: Alles auswählen
import qtwrap as qt
app = qt.Application([])
import this hat geschrieben:Namespaces are one honking great idea -- let's do more of those!
Erwin hat geschrieben:Das kann teilweise heiter werden.
Schade daß sich einiges Namentlich gegenseitig überschreibt.
Leonidas hat geschrieben:Aber Tkinter würde ich so importieren:Code: Alles auswählen
import Tkinter as tk
import Image
damit kann ich auf sowohl auf PILs Image zugreifen als auch auf tk.Image.
Erwin hat geschrieben:Was hat es sich mit den 'as' auf sich?
Wo ist da der Unterschied zwischen
- from Tkinter import Tk
und
- import Tkinter as Tk
?
Code: Alles auswählen
# optionen.py
blah = 42
Code: Alles auswählen
# mod_a.py
from optionen import *
blah = 5
import mod_b
Code: Alles auswählen
# mod_b.py
import optionen
print optionen.blah
fs111 hat geschrieben:Wenn man from foo import * macht, werden die "_"-Sachen übrigens nicht mitimportiert, also schon in gewisser Weise private.
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: latin-1 -*-
_val = True
__val = True
Code: Alles auswählen
>>> import privmod
>>> dir(privmod)
['__builtins__', '__doc__', '__file__', '__name__', '__val', '_val']
>>> privmod._val
True
>>> True
>>> privmod.__val
True
Code: Alles auswählen
def olliminiert(optimiert, eliminiert, terminiert):
Leonidas hat geschrieben: Nein, so wie ich sehe werden die Sachen doch importiert (Python 2.4.1).
gerold hat geschrieben:fs11 schrieb from foo import *. Das macht schon einen Unterschied![]()
Olliminatore hat geschrieben:Wie kann man module/attribute wieder entladen und wann ist es nützlich? (finde es einfach nicht)
Mitglieder in diesem Forum: 0 Mitglieder