


Dapatkan autolengkap yang lebih baik untuk Faker apabila menggunakan factory_boy
Jul 27, 2024 pm 02:42 PMSebelum autolengkap dikuasakan pelayan bahasa terdapat di mana-mana, tidak kira jika kod ditulis dengan cara yang memudahkan autolengkap. Editor teks popular seperti Sublime tidak cukup memahami kod untuk memberikan cadangan yang bermakna. Pengaturcara sama ada menghafal arahan kebergantungan mereka atau mereka merujuk dokumentasi.
Pada tahun 2024 autolengkap ada di mana-mana, tetapi pakej kami tidak semestinya memudahkan tugasnya. Ambil contoh ini daripada dokumentasi Factory Boy:
import factory from datetime import datetime from .models import User class UserFactory(factory.Factory): class Meta: model = User arrival = factory.Faker( 'date_between_dates', date_start=datetime.date(2020, 1, 1), date_end=datetime.date(2020, 5, 31), )
Atribut ketibaan memanggil kaedah date_between_dates() Faker. Malangnya, factory.Faker() tidak memberitahu anda kaedah Faker yang tersedia dan ia tidak akan memberitahu anda parameter yang diterima oleh kaedah Faker sebaik sahaja anda memilihnya. Kod ini mengurangkan faedah yang disediakan oleh pelayan bahasa.
Autolengkap Faker di kilang
Anda boleh mendapatkan autolengkap semasa menggunakan Faker dengan factory_boy dengan membungkus panggilan Faker di kilang.LazyFunction():
import factory from datetime import datetime from .models import User fake = Faker() class UserFactory(factory.Factory): class Meta: model = User arrival = factory.LazyFunction(lambda: fake.date_between_dates( date_start=datetime.date(2020, 1, 1), date_end=datetime.date(2020, 5, 31), ))
Fungsi dihantar ke kilang.LazyFunction() menilai apabila kilang mencipta tika. Kami membungkus panggilan palsu kami dalam lambda supaya kami boleh memberikannya hujah. Dan pelayan bahasa anda boleh menunjukkan kepada anda parameter yang fake.date_between_dates() terima.
Terdapat kurang persediaan apabila fungsi palsu tidak memerlukan sebarang hujah. Berikut ialah cara anda boleh menggunakan factory.LazyFunction() dengan kaedah first_name() dan last_name() Faker:
import factory from datetime import datetime from .models import User fake = Faker() class UserFactory(factory.Factory): class Meta: model = User first_name = factory.LazyFunction(fake.first_name) last_name = factory.LazyFunction(fake.last_name)
Kod yang terhasil adalah lebih lama sedikit berbanding jika kami menggunakan factory.Faker(), tetapi bantuan daripada pelayan bahasa amat berbaloi untuk saya. Tanpanya, saya mungkin perlu sentiasa menyemak dokumentasi.
Jika terlalu banyak untuk menaip, anda sentiasa boleh menyamakannya kepada sesuatu yang lebih pendek:
from factory import Factory, LazyFunction as LazyFn from datetime import datetime from .models import User fake = Faker() class UserFactory(Factory): class Meta: model = User first_name = LazyFn(fake.first_name) last_name = LazyFn(fake.last_name)
Atas ialah kandungan terperinci Dapatkan autolengkap yang lebih baik untuk Faker apabila menggunakan factory_boy. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks

Pengenalan kepada Flask: Menambah halaman kenalan

Cara Bekerja Dengan Dokumen PDF Menggunakan Python

Cara Cache Menggunakan Redis dalam Aplikasi Django

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch?
