Python için çok yeni, basit bir sorum var. BenModül öneki nasıl çıkarılır?
import A
yaparsanız
Örneğin
sonra A.b()
kullanabilirsiniz. A.b()
A
'u nasıl aktaracağımı merak ediyorum? A
yana
Python için çok yeni, basit bir sorum var. BenModül öneki nasıl çıkarılır?
import A
yaparsanız
Örneğin
sonra A.b()
kullanabilirsiniz. A.b()
A
'u nasıl aktaracağımı merak ediyorum? A
yana
Eğer modül A
den b
kullanmak istiyorsanız: Bunu adlandırmak istiyorsanız
from A import b
:
from A import b as my_b
Birkaç nesneye ihtiyacınız varsa:
from A import b, c, d
her şeyi gerekirse: import *
seçeneği Hakkında
from A import *
, this post okumak etmeyiniz. Oldukça kısaydı, ama tl: dr: modülden from A import *
her şeyi almayın.
import numpy as np
import tkinter as tk
Ben kesinlikle bir ithalattan '' kullanmamalısınız diyemezdim ''.Sadece bunu yaparken dikkatli olman gerek. Örneğin, Tk öğreticisinde 'tkinter import * 'sözcüğünü kullanmam önerildi; tkt ttk'den temalı widget'lar için tk' ve ttk’nın karıştırması çok kolaydır. Ben neredeyse her zaman tkinter kullanırken bunu yaparım. (Sadece iki ithalatı ayrı satırlara koymadım çünkü bir yorumda bunu nasıl yapacağımı bilmiyorum). –
@IsaacSaffold Bu oldukça doğru, ancak gerekli bakım oldukça acı verici. Her neyse, bağlandığım yazı, bu şekilde yapabileceğimden daha iyi. –
“import” 'den' 'yapıp saatlerce hata ayıklama yaptıktan sonra“ açık ”aramalarınız artık çalışmaz çünkü bir daha asla joker içe aktarma kullanmazsınız. – Matthias
bir modüldür, yapabileceğiniz:
from A import b
b()
Bu soru zaten yanıtlandı ancak ithalat kullanırken bir şey not: Eğer gerçekten modül, veya içeriğinin çok büyük bir kısmı her şeyi gerekirse , muhtemelen adlandırma ile normal ithalat tercih
from module import foo
ve
import module
bellek ve performans ilgilidir kadarıyla kesinlikle aynı mıdır olmasıdır. Her iki durumda da
module
derlenir ve
sys.modules
'a yüklenir. Tek fark, ad alanınıza getirilen şey. İlk durumda,
foo
. İkinci durumda,
module
.
from module import *
kullanarak neden kötü olduğunu diğer cevaplar açıklamak olmadığından
olmasının sebebi de budur: *
doğrudan kullanım için ad içine herşeyi ithal edecek. 'u ne yaptığınızı bilmiyorsanız, bu iyi bir fikir değildir. Özellikle birden çok büyük modülü içe aktarırken isim çatışmaları kesinlikle mümkündür.
Bu bir fikir meselesi olabilir, ancak import module
ve ardından module.foo()
'un daha güvenli olduğuna ve okuyucunun bu yöntem/öznitelik hakkında nereden geldiğini ve ne yaptığına dair daha iyi bir fikir verdiğine inanıyorum. Okunabilirlik önemlidir!
Sormadan önce [belgeleri] (http://docs.python.org) okumayı denediniz mi? – cat