private Function in Modul

04/09/2013 - 08:57 von Philipp Kraus | Report spam
Hallo,

ich habe in einer Moduldatei "Utilities.py" mehrere Funktionen, einfache defs.
Ich nutze den Inhalt einfach mittels

import Utilites
Utilities.Function(…)

Es ist im Grunde nur eine kurze Funktionsdefinition. Ich möchte aber eigentlich
gerne noch Sichtbarkeiten habe, d.h. einige Funktion werden nur in diesem Modul
benötigt (also Function ruft Function2 auf und Function2 wird niemals von außen
aufgerufen).
Gibt es eine Methode, wie ich die Sichtbarkeiten hinein bekomme? Ich
möchte eigentlich
keine Klassenstruktur (mittels Metaklasse) implementieren, sondern nur
dafür Sorge
tragen, dass einige Funktionen nicht von außen aufgerufen werden können.

Wie kann ich das realisieren?
Danke

Phil
 

Lesen sie die antworten

#1 Peter Otten
04/09/2013 - 09:36 | Warnen spam
Philipp Kraus wrote:

ich habe in einer Moduldatei "Utilities.py" mehrere Funktionen, einfache
defs. Ich nutze den Inhalt einfach mittels

import Utilites
Utilities.Function(…)



Empfohlene Lektüre:

http://www.python.org/dev/peps/pep-...onventions

Es ist im Grunde nur eine kurze Funktionsdefinition. Ich möchte aber
eigentlich gerne noch Sichtbarkeiten habe, d.h. einige Funktion werden nur
in diesem Modul benötigt (also Function ruft Function2 auf und Function2
wird niemals von außen aufgerufen).
Gibt es eine Methode, wie ich die Sichtbarkeiten hinein bekomme? Ich
möchte eigentlich
keine Klassenstruktur (mittels Metaklasse) implementieren, sondern nur
dafür Sorge
tragen, dass einige Funktionen nicht von außen aufgerufen werden können.

Wie kann ich das realisieren?



Es gibt die Konvention, private Funktionen, Klassen etc. mit einem
Unterstrich beginnen zu lassen. Sie erscheinen dann nicht in der Hilfe:

$ cat tmp.py
def f():
"yadda yadda"

def _g():
"private func"

$ python
[...]
help("tmp")






Help on module tmp:

NAME
tmp

FILE
/path/to/tmp.py

FUNCTIONS
f()
yadda yadda

Wer solche Funktionen trotzdem benutzen möchte, kann das natürlich. Ich
empfehle, auf Maßnahmen, die das erschweren, zu verzichten.

Ähnliche fragen