Refactoring in Python
接觸了一陣子的Python
開始想要讓自己的程式碼能更有彈性化與更好Debug
所以在網路上搜尋了一下 Design Pattern for Python
真的有一堆東西
其中剛好有人寫到 Refactoring Python
就開始著手修改自己的Coding Style
底下會先用一個列出 動物有幾隻腳 的程式做為範例
在拿Refactoring後的程式與一開始常寫的東西做對比
重構前:
#!/usr/bin/env python
def animal_info(animal_type):
feet = 0
if animal_type == "lion":
feet=4
elif animal_type == "duck":
feet=2
elif animal_type == "dog":
feet=4
print "%s has %s feet"%(animal_type,feet)
if __name__ == "__main__":
animal_info("lion")
animal_info("duck")
animal_info("dog")
重構後:
#!/usr/bin/env python
def animal_inspect(animal_type):
animal_dict = {
"dog" : { "feet":"4"},
"duck" : { "feet":"2"},
"lion" : { "feet":"4"}
}
animal_info = animal_dict[animal_type]
animal_feet = animal_info["feet"]
print "%s has %s feet"%(animal_type,animal_feet)
def main():
animal_array = ["lion","duck","dog"]
for animal_type in animal_array:
animal_inspect(animal_type)
if __name__ == "__main__":
main()
雖然重構後的架構會稍微的複雜些
但是如果要修改或是擴增上 就會便利許多
尤其是if else當越寫越長
就會越來越難debug
透過dict方式來替代if else的確是很棒的方式
0 意見 :
張貼留言