Aturan praktis yang baik adalah bahwa nama metode harus berupa kata kerja atau predikat sedemikian rupa sehingga objek yang Anda panggil ( selfdalam konvensi Python standar, thisdalam sebagian besar bahasa lain) menjadi subjek.
Dengan aturan ini, file.closeagak salah, kecuali Anda pergi dengan model mental bahwa file menutup sendiri, atau bahwa fileobjek tidak mewakili file itu sendiri, melainkan menangani file atau semacam objek proxy.
Namun, tas tinju tidak pernah meninju dirinya sendiri, jadi punchingBag.punch()itu salah. be_punched()secara teknis benar, tetapi jelek. receive_punch()mungkin bekerja, atau handle_punch(). Pendekatan lain, cukup populer di JavaScript, adalah untuk memperlakukan pemanggilan metode seperti peristiwa, dan konvensi yang ada untuk pergi dengan nama acara, diawali dengan 'on', sehingga akan menjadi on_punched()atau on_hit(). Atau, Anda bisa mengadopsi konvensi yang partisip masa lalu menunjukkan suara pasif, dan dengan konvensi itu, nama metode akan adil punched().
Aspek lain yang perlu dipertimbangkan adalah apakah karung tinju benar-benar tahu apa yang menabraknya: apakah membuat perbedaan apakah Anda meninju, memukulnya dengan tongkat, atau menabraknya dengan truk? Jika demikian, apa bedanya? Bisakah Anda merebus perbedaan menjadi argumen, atau apakah Anda memerlukan metode berbeda untuk berbagai jenis hukuman yang diterima? Metode tunggal dengan parameter generik mungkin merupakan solusi yang paling elegan, karena menjaga derajat kopling tetap rendah, dan metode seperti itu tidak boleh disebut punched()atau handle_punch(), melainkan sesuatu yang lebih umum seperti receive_hit(). Dengan metode seperti itu, Anda dapat menerapkan semua jenis aktor yang bisa mengenai tas tinju, tanpa mengubah tas tinju itu sendiri.