Yanıtlar:
from file1 import *
dosya1'deki tüm nesneleri ve yöntemleri içe aktaracak
ImportError: No module named file1
İthalat file1
içi file2
:
Tüm değişkenleri dosya2 ad alanını taşmadan dosya1'den içe aktarmak için şunu kullanın:
import file1
#now use file1.x1, file2.x2, ... to access those variables
Tüm değişkenleri dosya1'den dosya2 ad alanına aktarmak için (önerilmez):
from file1 import *
#now use x1, x2..
Gönderen docs :
from module import *
Modül düzeyinde kullanmak geçerli olsa da, genellikle kötü bir fikirdir. Birincisi, bu, Python'un başka türlü sahip olduğu önemli bir özelliği kaybeder - her bir üst düzey adının, favori düzenleyicinizde basit bir "arama" işlevi tarafından nerede tanımlandığını bilebilirsiniz. Ayrıca, bazı modül ek işlevler veya sınıflar geliştirirse, gelecekte kendinizi sorunlara açarsınız.
import file1
o zaman kullan.
file1.varX
her dosyanın başına eklemeniz gerekmesine rağmen değişkenleri içe aktarır .
X1 ve x2'yi açıkça içe aktarmak en iyisi :
from file1 import x1, x2
Bu, file1
çalışırken değişkenler ve işlevlerle gereksiz ad alanı çakışmalarını önlemenizi sağlar file2
.
Ancak gerçekten istiyorsanız, tüm değişkenleri içe aktarabilirsiniz :
from file1 import *
Aslında bu, bir değişkeni şu şekilde içe aktarmakla aynı değildir:
from file1 import x1
print(x1)
ve
import file1
print(file1.x1)
İçe aktarma zamanında x1 ve dosya1.x1 aynı değere sahip olsalar da, aynı değişkenler değildirler. Örneğin, dosya1'de x1'i değiştiren bir işlevi çağırın ve sonra değişkeni ana dosyadan yazdırmayı deneyin: değiştirilen değeri görmeyeceksiniz.
Marc'ın cevabı doğru. Aslında değişkenler için hafıza adresini yazdırabilir print(hex(id(libvar))
ve adreslerin farklı olduğunu görebilirsiniz.
# mylib.py
libvar = None
def lib_method():
global libvar
print(hex(id(libvar)))
# myapp.py
from mylib import libvar, lib_method
import mylib
lib_method()
print(hex(id(libvar)))
print(hex(id(mylib.libvar)))
İçinde Python
diğer dosyaların içeriğine,
java veya herhangi bir oop temel dili gibi diğer dillere kıyasla bir tür kitaplıkmış gibi erişebilirsiniz. Bu gerçekten harika;
Bu, dosyanın içeriğine erişmeyi veya onu işlemek veya onunla herhangi bir şey yapmak için içe aktarmayı sağlar; Python
Veri Bilimi ve Makine Öğrenimi vb. İçin Dil'in çok tercih edilmesinin ana nedeni budur ;
Ve Gizli anahtarlarının .env file
bulunduğu değişkenlere nereden erişiyorum API links
.
Genel yapı:
from <File-Name> import *