Kayıt için python çalışma kılavuzundan alıntı.
İstemci import veya from ifadesini çalıştırabilir. Modül yüklenmezse, bu ifadeler modül dosya programını arayacak, derleyecek ve çalıştıracaktır. Ana fark, import modülün tamamını okumasıdır, bu yüzden değişken adı okunmadan önce tanımlanmalıdır; From'dan modüle özgü değişken isimlerini alacak (veya kopyalayacak).
İç aktarma işlemi değişken adının tüm modül nesnesine atıfta bulunmasını sağlar, bu nedenle modülün özellikleri modül adıyla elde edilmelidir (örneğin, module1.printer). ve from, değişken adını başka bir kapsama kopyalar, böylece kopyalanan değişken adını doğrudan script içinde bir modülden (örneğin yazıcı) geçmeden kullanabilir.
from ifadesi, isim alanlarını bozma potansiyeline sahiptir. Eğer değişkenleri from kullanarak içe aktarırsanız ve bu değişkenler kapsamdaki mevcut değişkenlerle çoğaltılırsa, değişkenler sessizce üzerine yazılır. İç aktarma ifadeleri kullanılırken bu sorun değildir, çünkü içeriği modül adıyla elde edilmelidir. Ancak from kullanıldığında, pratikte bu büyük bir sorun değildir; özellikle import değişken isimlerini açıkça listelerseniz (örneğin, x, y, z modülünden) bunu anlıyor ve öngörüyorsanız.
Öte yandan, yeniden yükleme çağrısı ile kullanıldığında, from ifadesi ciddi bir sorun yaşar, çünkü içe aktarılan değişken adı nesnenin önceki bir sürümüne atıfta bulunabilir. Ayrıca, modül import'tan * formu gerçekten isim alanını bozabilir ve değişken isimlerini anlamayı zorlaştırabilir, özellikle birden fazla dosya içe aktarıldığında.
Daha pragmatik bir öneri ise, basit modüllerin genellikle 'import' (import (import kullanımı) kullandığıdır. From'dan ifadelerin çoğu, istenen değişkenleri açıkça saymak için kullanılır ve * formunu sadece dosya başına bir kez kullanmakla sınırlıdır. Bu şekilde, *'den referans verilen modülde herhangi bir tanımlanmamış değişken adı var olarak kabul edilebilir. Aynı değişken adı değişkenini iki farklı modülde tanımlamak zorunda olduğunuzda gerçekten import kullanmanız gerekiyor, bu durumda from kullanamazsınız.
Çok konuştum, ne diyeceğimi bilmiyorum, kısa bir süre konuşalım.
- Modül # İçe Aktar Modülleri Tanıt
- Modül içe aktarma Diğer # Modüldeki sınıfları, fonksiyonları veya değişkenleri tanıtın
- Modül içe aktarmadan * # Modüldeki tüm 'public' üyeleri tanıtın
Sade bir dilde:
Bir sınıf #把整个一班的学生引入了进来 import et
Bir gruptan Xiao Wang #只把一般的小王引入了进来
Örneğin:
Zaman paketi bir örnektir ve aşağıdaki iki yazma yöntemi aynıdır, aşağıdaki gibidir:
|