funkybob adalah pustaka Python untuk menghasilkan nama acak bergaya Docker, seperti ini:
ecstatic_ritchie, kind_beaver, sharp_heisenberg, angry_nightingale, ...
funkybob mendukung pembuatan nama yang didahului dengan sejumlah kata sifat, untuk menambah jumlah nama unik yang dapat dihasilkan:
Random names with no adjectives:
swirles, khorana, blackwell, ...
Random names preceeded by an adjective:
ecstatic_ritchie, kind_beaver, sharp_heisenberg, ...
Random names preceeded by two adjectives:
admiring_dazzling_noether, thirsty_wonderful_agnesi, silly_wizardly_feynman, ...
Random names preceeded by three adjectives:
cranky_goofy_hopeful_wright, competent_jolly_suspicious_kare, cocky_competent_gifted_yalow, ...
Saat menggunakan lebih dari satu kata sifat, funkybob memastikan bahwa dua nama dengan kumpulan kata sifat yang sama tidak dapat muncul, meskipun urutannya berbeda. Jadi misalnya nama inspiring_stupefied_payne
sudah di-generate, maka bisa dipastikan nama stupefied_inspiring_payne
tidak akan di-generate nantinya. Hal ini membuat nama lebih mudah dibedakan dan kecil kemungkinannya menimbulkan kebingungan.
Paket dihosting di PyPI, untuk menginstal gunakan:
$ pip install funkybob
funkybob mengirimkan tiga generator nama berbeda:
SimpleNameGenerator : ini memberikan urutan nama yang deterministik -- tidak ada keacakan. Ini akan mengembalikan nama duplikat setelah semua kombinasi dihasilkan. Berguna jika yang Anda pedulikan hanyalah kinerja.
RandomNameGenerator : mengembalikan nama yang dihasilkan secara acak. Ini mungkin mengembalikan nama duplikat kapan saja.
UniqueRandomNameGenerator : mengembalikan nama yang dihasilkan secara acak, tetapi tidak seperti RandomNameGenerator, tidak ada duplikat yang dikembalikan. Berbeda dengan dua generator lainnya, generator ini memiliki ukuran terbatas dan akan berhenti menghasilkan nilai setelah semua nama unik dikembalikan.
Tabel ini merangkum fitur ketiga generator:
Generator | Tak terbatas | Acak | Duplikat |
---|---|---|---|
Generator Nama Sederhana | Ya | TIDAK | Ya |
Generator Nama Acak | Ya | Ya | Ya |
Generator NamaAcak Unik | TIDAK | Ya | TIDAK |
Ketiga generator tersebut bersifat iterable, artinya Anda cukup menggunakan iter()
dan next()
untuk mengambil nama:
>> > import funkybob
>> > generator = funkybob . RandomNameGenerator ()
>> > it = iter ( generator )
>> > next ( it )
'practical_hoover'
>> > next ( it )
'stupefied_ramanujan'
>> > next ( it )
'zealous_aryabhata'
Anda dapat meneruskan parameter members
dan separator
untuk mengubah jumlah kata sifat atau format nama:
>> > # This will generate names with 3 members (2 adjectives + 1 last name),
>> > # separated by a colon
>> > generator = funkybob . RandomNameGenerator ( members = 3 , separator = ':' )
>> > it = iter ( generator )
>> > next ( it )
'friendly:hopeful:neumann'
>> > next ( it )
'admiring:trusting:montalcini'
>> > next ( it )
'practical:suspicious:blackwell'
Generator memiliki atribut unique_count
yang dapat Anda gunakan untuk memeriksa jumlah nama unik yang dapat dihasilkan:
>> > generator . unique_count
740094
Selain semua hal di atas, UniqueRandomNameGenerator menyediakan antarmuka seperti urutan, yang berarti, misalnya, Anda dapat menggunakan pengindeksan atau metode len()
(yang sama dengan mengakses atribut unique_count
):
>> > generator = funkybob . UniqueRandomNameGenerator ()
>> > generator [ 0 ]
'xenodochial_yalow'
>> > generator [ 1 ]
'kind_mccarthy'
>> > generator [ 2 ]
'happy_hawking'
>> > len ( generator )
16089
Anda dapat menambah jumlah members
untuk menambah ukuran, dengan mengorbankan nama yang lebih panjang.
UniqueRandomNameGenerator juga mendukung parameter tambahan: seed
. Ini dapat digunakan untuk menginisialisasi generator pseudo-acak. Jika Anda selalu memberikan nilai yang sama, urutan nama yang sama akan dihasilkan. Ini dapat berguna dalam pengujian ketika Anda memerlukan nama yang dapat diprediksi.