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.
Naja, im Falle des Strings ist join() eine Methode des String-Objektes. Im Falle von os.path.join() ist es eine Methode des path-Objektes, die du über den Import in den Namensraum deines Modules überträgst (ich hoffe, ich habe das jetzt richtig dargestellt).
Auf alle Fälle ist die Zugehörigkeit im Falle der Strings völlig offensichtlich, da du das dazugehörige Objekt ja vorweg angegeben hast.
In [38]: import os.path
In [39]: os.path.join
Out[39]: <function join at 0xb7df733c>
In [40]: "".join
Out[40]: <built-in method join of str object at 0xb7dbc098>
Du musst auch beachten _wie_ du die Funktionen aufrufst.
Einmal als string.join womit man immer die Methode join von string meint. Allgemein gesagt: bei objekt.methode bezieht sich methode immer auf objekt und existiert nur in diesem Zusammenhang und hat dann auch nichts mit (vermeintlich - denn der Name ist string.join und nicht nur join) gleichnamigen anderen Funktionen zu tun.
Und beim anderem mal rufst du join(argument) auf, womit du eine Funktion aufrufst, die sich auf kein Objekt bezieht.
Eigentlich wäre ja `path_join` ein passenderer Name, es werden ja keine Betriebssysteme verbunden, sondern (Teil)Pfade.
Allerdings kann man dann auch `from os import path` schreiben und `path.join` zum Aufruf verwenden. Ich benutze in der Regel immer den kompletten Namen `os.path.join` zum Aufrufen. Sooo lang ist das ja nun auch nicht.
@Dauerbaustelle: Nein, in beiden Fällen muss das ganze Modul geladen werden. Die Frage ist nur was unter welchem Namen im importierenden Modul gebunden wird.
@jens: aber in manchem Fällen doch wenig sinnvoll? Sobald es sich um längere Namen und verschachtelte Module handelt. Dann bin ich schon am Zeilenende bevor der Name ausgeschrieben ist... (das ist bei os sich kein Problem)
Ist aber auch kein Beispiel gegen jens' Aussage nichts aus Modulen zu importieren, denn `decorators` ist doch wahrscheinlich selbst wieder ein Module, oder?