funkybob เป็นไลบรารี Python สำหรับสร้างชื่อสุ่มสไตล์ Docker เช่นนี้
ecstatic_ritchie, kind_beaver, sharp_heisenberg, angry_nightingale, ...
funkybob รองรับการสร้างชื่อที่นำหน้าด้วยจำนวนคำคุณศัพท์ตามอำเภอใจ เพื่อเพิ่มจำนวนชื่อที่ไม่ซ้ำที่สามารถสร้างได้:
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, ...
เมื่อใช้คำคุณศัพท์มากกว่าหนึ่งคำ funkybob ช่วยให้แน่ใจว่าชื่อสองชื่อที่มีชุดคำคุณศัพท์ชุดเดียวกันจะไม่เกิดขึ้น แม้ว่าลำดับจะต่างกันก็ตาม ตัวอย่างเช่น หากมีการสร้างชื่อ inspiring_stupefied_payne
คุณจะมั่นใจได้ว่าจะไม่สร้างชื่อ stupefied_inspiring_payne
ในภายหลัง ทำให้แยกแยะชื่อได้ง่ายขึ้นและมีโอกาสสร้างความสับสนน้อยลง
แพ็คเกจนี้โฮสต์บน PyPI เพื่อติดตั้งการใช้งาน:
$ pip install funkybob
funkybob จัดส่งเครื่องกำเนิดชื่อสามแบบที่แตกต่างกัน:
SimpleNameGenerator : ให้ลำดับชื่อที่กำหนดขึ้น -- ไม่มีการสุ่มที่เกี่ยวข้อง สิ่งนี้จะส่งคืนชื่อที่ซ้ำกันเมื่อได้รับชุดค่าผสมทั้งหมดแล้ว มีประโยชน์หากสิ่งที่คุณใส่ใจคือประสิทธิภาพ
RandomNameGenerator : ส่งคืนชื่อที่สร้างแบบสุ่ม อาจส่งคืนชื่อที่ซ้ำกันได้ทุกเมื่อ
UniqueRandomNameGenerator : ส่งคืนชื่อที่สร้างแบบสุ่ม แต่จะไม่เหมือนกับ RandomNameGenerator ตรงที่ไม่มีการส่งคืนชื่อที่ซ้ำกัน ไม่เหมือนกับเครื่องกำเนิดไฟฟ้าอีกสองเครื่อง เครื่องนี้มีขนาดที่จำกัด และจะหยุดให้ค่าเมื่อส่งกลับชื่อที่ไม่ซ้ำกันทั้งหมดแล้ว
ตารางนี้สรุปคุณลักษณะของเครื่องกำเนิดไฟฟ้าทั้งสามเครื่อง:
เครื่องกำเนิดไฟฟ้า | อนันต์ | สุ่ม | ซ้ำกัน |
---|---|---|---|
SimpleNameGenerator | ใช่ | เลขที่ | ใช่ |
RandomNameGenerator | ใช่ | ใช่ | ใช่ |
UniqueRandomNameGenerator | เลขที่ | ใช่ | เลขที่ |
เครื่องกำเนิดไฟฟ้าทั้งสามเครื่องสามารถทำซ้ำได้ ซึ่งหมายความว่าคุณสามารถใช้ iter()
และ next()
กับเครื่องกำเนิดไฟฟ้าทั้งสามเครื่องเพื่อดึงข้อมูลชื่อ:
>> > import funkybob
>> > generator = funkybob . RandomNameGenerator ()
>> > it = iter ( generator )
>> > next ( it )
'practical_hoover'
>> > next ( it )
'stupefied_ramanujan'
>> > next ( it )
'zealous_aryabhata'
คุณสามารถส่งพารามิเตอร์ members
และ separator
เพื่อเปลี่ยนจำนวนคำคุณศัพท์หรือการจัดรูปแบบของชื่อได้:
>> > # 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'
ตัวสร้างมีแอตทริบิวต์ unique_count
ที่คุณสามารถใช้ตรวจสอบจำนวนชื่อที่ไม่ซ้ำที่สามารถสร้างได้:
>> > generator . unique_count
740094
นอกเหนือจากที่กล่าวมาทั้งหมด UniqueRandomNameGenerator ยังจัดเตรียมอินเทอร์เฟซที่มีลักษณะคล้ายลำดับ ซึ่งหมายความว่า คุณสามารถใช้การจัดทำดัชนีหรือเมธอด len()
ได้ (ซึ่งเหมือนกับการเข้าถึงแอตทริบิวต์ unique_count
):
>> > generator = funkybob . UniqueRandomNameGenerator ()
>> > generator [ 0 ]
'xenodochial_yalow'
>> > generator [ 1 ]
'kind_mccarthy'
>> > generator [ 2 ]
'happy_hawking'
>> > len ( generator )
16089
คุณสามารถเพิ่มจำนวน members
เพื่อเพิ่มขนาดได้ โดยไม่ต้องมีชื่อยาวอีกต่อไป
UniqueRandomNameGenerator ยังรองรับพารามิเตอร์เพิ่มเติม: seed
ซึ่งสามารถใช้เพื่อเริ่มต้นตัวสร้างแบบสุ่มหลอก หากคุณส่งผ่านค่าเดียวกันเสมอ ชื่อจะถูกสร้างขึ้นตามลำดับ สิ่งนี้มีประโยชน์ในการทดสอบเมื่อคุณต้องการชื่อที่คาดเดาได้