2011-07-19 80 views
1

檢查單個值/對象的斷言函數具有以「is」開頭的名稱(is_validis_okis_empty),這是公認的。我有一個函數比較幾個對象(在我的情況下,字符串),並決定它們是否「足夠相似」。你會如何命名這樣的功能?我的變體是are_strings_similar(s1, s2, s3),但看起來有些尷尬。分析多個對象並返回布爾值的函數的命名約定

的代碼是在Python,BTW

+6

我把它稱爲 「are_similar」,並與我的生活。 – Patrick87

+3

但是,我必須真正的工作,而不是「思考」:-) –

+0

Touché:D ........ – Patrick87

回答

4

就個人而言,我會去與is_strings_similar或只是is_similar。爲什麼?因爲它使字符串搜索所有斷言函數的代碼更容易。它是代碼,而不是研究論文。不適當的結合動詞不是主要問題,易於維護。大多數英語使用者可以讀取「is_strings_similar」並解析出功能的用途。但是,我知道沒有任何正則表達式解析器可以搜索「要」謂詞的不同結合體,而無需用戶提供額外的輸入。

+0

好主意,你可以說is_string_group_similar()或is_string_set_similar()並且仍然保持正確的英文:-) –

1

完全取決於你用什麼特定的命名慣例。如果沒有描述這些函數的命名,則按照您的意思命名該函數。 are_strings_similar對我來說看起來不錯。沒什麼大不了的。

1

那麼,理想的做法是創建一個方法similar,並讓它接受2+ iterables作爲參數設置;-)

就個人而言,我認爲,類夾雜物,使名字有點彆扭,但這是個人喜好。當我閱讀它時,它並沒有違反任何style guidelines

它可能有助於澄清您的想法實際上大聲讀出它。

if are_similar_strings("foo","fo","fooo"): #guessing at implementation here. 
1

if nearly_equal(s1, s2, s3): 

if nearly_the_same(s1, s2, s3): 

單元測試如何使用assertAlmostEqual,所以也許

if almost_equal(s1, s2, s3):