Saya telah membaca ada tiga cara untuk mengkodekan impor multi-baris dengan python
Dengan garis miring:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, \
LEFT, DISABLED, NORMAL, RIDGE, END
Menggandakan senteces:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text
from Tkinter import LEFT, DISABLED, NORMAL, RIDGE, END
Dengan tanda kurung:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END)
Apakah ada format yang direkomendasikan atau cara yang lebih elegan untuk pernyataan ini?
python
python-2.7
pep8
Manuel Alvarez
sumber
sumber
from Tkinter import *
?from data.forms import AddressEmbeddedField, PhoneEmbeddedField, MailEmbeddedField, \ WebEmbeddedField
tetapi tidak ingin mengimpor semua bidang tersemat lainnya dalam data.formsfrom Tkinter import *
? Saya tidak. Dan IDE tidak akan tahu apakah nama-nama ini (mungkin), sehingga mereka tidak dapat mengetahui apakah Anda memasukkan nama yang tidak valid.Jawaban:
Secara pribadi saya menggunakan tanda kurung saat mengimpor lebih dari satu komponen dan mengurutkannya menurut abjad. Seperti:
Ini memiliki keuntungan tambahan karena mudah melihat komponen apa yang telah ditambahkan / dihapus di setiap komit atau PR.
Secara keseluruhan meskipun itu adalah preferensi pribadi dan saya akan menyarankan Anda untuk memilih apa pun yang terbaik bagi Anda.
sumber
Contoh Anda tampaknya berasal dari PEP 328 . Di sana, notasi-tanda kurung diusulkan untuk masalah ini, jadi mungkin saya akan memilih yang ini.
sumber
Saya akan menggunakan notasi kurung dari PEP328 dengan baris baru ditambahkan sebelum dan sesudah tanda kurung:
Ini adalah format yang digunakan Django :
sumber
from foo import (bar, baz)
. PEP 328 tidak menjelaskan apa pun tentang pemformatan.Biasanya dengan Tkinter, tidak apa-apa untuk hanya digunakan
from Tkinter import *
karena modul hanya akan mengekspor nama yang jelas merupakan widget.PEP 8 tidak mencantumkan konvensi apa pun untuk kasus seperti itu, jadi saya rasa terserah Anda untuk memutuskan opsi apa yang terbaik. Ini semua tentang keterbacaan, jadi pilih apa pun yang memperjelas bahwa Anda mengimpor barang dari satu modul.
Karena semua nama tersebut tersedia dalam cakupan Anda, menurut saya opsi 2 adalah yang paling jelas karena Anda dapat melihat nama yang diimpor sebagai yang terbaik. Anda bahkan dapat membaginya lebih banyak untuk mungkin mengelompokkan nama-nama itu bersama-sama yang dimiliki satu sama lain. Dalam contoh Anda, saya mungkin menempatkan
Tk
,Frame
danCanvas
secara terpisah saat mereka mengelompokkan widget bersama, sementara memilikiButton
danText
secara terpisah karena mereka adalah komponen yang lebih kecil dalam tampilan.sumber
from X import *
bahkan untuk paket yang digunakan__all__
dengan benar adalah bahwa penganalisis kode statis sepertipyflakes
tidak dapat mendeteksi nama yang tidak ditentukan jika adaimport *
karena harus berasumsi bahwa nama yang tidak ditentukan mungkin diimpor oleh*
.