Bir python paketindeki alt modülleri içeren dizinin (alt paket) paketin içe aktarıldığı sırada bir simge olarak görünmesinin nedenini merak ediyorum. Bu paket var Örneğin, eğer:python alma paketi - alt simge sembol tablosunda görünmemelidir
PyModTest/ Top-level package
__init__.py Initialize the package
Source/ Subpackage holding source files
__init__.py
WildMod.py Submodule containing a function: 'WildFunc'
üst düzey __init__.py şöyle burada:
#!/usr/bin/env python
from Source.WildMod import WildFunc
ve tamlık hatırına alt düzey __init__.py şöyle :
#!/usr/bin/env python
__all__ = ["WildMod"]
Tamam, tercüman açmak şimdi, modülü almak ve semboller bakmak:
>>> import PyModTest
>>> dir(PyModTest)
['Source', 'WildFunc', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
SEE, 'Kaynak' modülü her ne kadar özellikle onu ithal etsem de ortaya çıkıyor!
Görmek istediğim tek simge (özel olanların yanında) benim 'WildFunc'. 'Kaynak' paketini gizlemek için herhangi bir yolu var mı? Burada dikkat edilmesi gereken
Harika, bu mantıklı. 'Del Kaynak' ile ilgili öneriniz için teşekkürler :) – rokuingh
'Kaynak 'PyModTest'in bir alt paketidir, örtülü içe aktarma sessizce PyModTest.Source import ...'' a dönüştürülür ve böylece 'Source' modülü PyModTest modülünün bir özelliği olarak eklenmelidir. Eğer 'Kaynak' PyModTest paketinin dışında bulunduysa (olası olmayan, alt paketler sys.path' üzerinde önceliklidir), bu gerçekleşmeyecekti. Kendinizi ve başkalarını karıştırmamak için mutlaka mutlak ithalatı tercih edin. – SingleNegationElimination
@TokenMacGuy: ah, iyi yakalayın. Her nasılsa bu göreceli bir ithalat olduğu gerçeğini özledim. –