Saya memiliki baris kode berikut (jangan salahkan untuk konvensi penamaan, mereka bukan milik saya):
subkeyword = Session.query(
Subkeyword.subkeyword_id, Subkeyword.subkeyword_word
).filter_by(
subkeyword_company_id=self.e_company_id
).filter_by(
subkeyword_word=subkeyword_word
).filter_by(
subkeyword_active=True
).one()
Saya tidak suka seperti apa kelihatannya (tidak terlalu mudah dibaca) tapi saya tidak punya ide yang lebih baik untuk membatasi garis hingga 79 karakter dalam situasi ini. Apakah ada cara yang lebih baik untuk memecahkannya (lebih disukai tanpa garis miring terbalik)?
python
coding-style
pep8
Juliusz Gonera
sumber
sumber
foo.set_default('bar', {}).set_default('spam', {}).set_default('eggs', {})['lol'] = 'yeah'
Ini adalah kasus di mana karakter kelanjutan garis lebih disukai untuk membuka tanda kurung. Kebutuhan akan gaya ini menjadi lebih jelas ketika nama metode menjadi lebih panjang dan ketika metode mulai mengambil argumen:
PEP 8 bermaksud untuk ditafsirkan dengan ukuran akal sehat dan mata untuk yang praktis dan yang indah. Dengan senang hati melanggar pedoman PEP 8 yang menghasilkan kode yang jelek atau sulit dibaca.
Yang sedang berkata, jika Anda sering menemukan diri Anda berselisih dengan PEP 8, itu mungkin merupakan tanda bahwa ada masalah keterbacaan yang melampaui pilihan spasi putih Anda :-)
sumber
.filter
panggilan adalah bahwa jika Anda mengubahsubkeyword
kesub_keyword
, Anda sekarang harus memperbaiki lekukan dari setiap baris hanya karena Anda mengubah nama variabel. Tidak bagus ketika gaya sebenarnya menghalangi perawatan ...Pilihan pribadi saya adalah:
sumber
Simpan saja hasil / objek antara dan aktifkan metode selanjutnya, mis
sumber
team_members = soup.find(class_='section team').find_all('ul').find_all('li')
, nilai balik dari setiap.find(...)
panggilan belum sesuai dengan artiteam_members
.section = soup.find(class_='section team')
danteam_members = section.find_all('ul').find_all('li')
.Menurut Referensi Bahasa Python
Anda dapat menggunakan backslash.
Atau cukup hancurkan saja. Jika braket tidak dipasangkan, python tidak akan memperlakukan itu sebagai garis. Dan di bawah keadaan seperti itu, lekukan kalimat berikut tidak masalah.
sumber
Ini sedikit solusi yang berbeda dari yang disediakan oleh orang lain tetapi favorit saya karena itu mengarah pada pemrograman yang bagus kadang-kadang.
Ini adalah teknik yang bagus untuk membangun pencarian. Buka daftar persyaratan untuk menambang dari formulir kueri kompleks Anda (atau deduksi berbasis string tentang apa yang dicari pengguna), lalu cukup ledarkan kamus ke dalam filter.
sumber
Anda tampaknya menggunakan SQLAlchemy, jika itu benar,
sqlalchemy.orm.query.Query.filter_by()
metode mengambil beberapa argumen kata kunci, sehingga Anda dapat menulis seperti:Tetapi akan lebih baik:
sumber
Saya suka membuat indentasi argumen dengan dua blok, dan pernyataan dengan satu blok, seperti ini:
sumber