Python 代碼整潔最佳化

來源:互聯網
上載者:User

標籤:資料   add   __init__   info   ber   span   UNC   條件   bsp   

1.提煉函數

# 提煉之前def user_info():    users  =  db.session.query(User).all()    for user in users:        print(user.name)        print(user.gender)# 提煉之後def user_info():    users  =  db.session.query(User).all()    for user in users:        print_user(user)  def print_user(user):    print(user.name)    print(user.gender)

2.避免不必要的if..else..

# 最佳化前def compare(x):    if x > 8:        return True    else:        return False# 最佳化後def compare(x):    return x > 8

3.不要對參數賦值

# 最佳化前def amount(price,number)    if number > 40:        price = 25# 最佳化後def amount(price,number)    new_price = price    if number > 40:        new_price = 25

4.替換邏輯

# 最佳化前def func(x):    if x == "sqlserver":        return 1    if x == "oracle":        return 2    if x == "pgsql":        retuen 3    ...# 最佳化後map_x = {"sqlserver":1,"oracle":2, "pgsql":3}def func(x):    return map_x[x]

5.提煉類

# 最佳化前class Employee(object):    def __init__(self, name,gender,addresss, **kwargs):        self.name = name        ...         def get_employee_education():        return self.education         def get_employee_company_info():        company = Company()        print company.name        print company.address# 最佳化後class Employee(object):    def __init__(self, name,gender,addresss, **kwargs):         self.name = name        self.company = Company()        ...     def get_employee_education():         return self.education          def get_employee_company_info():        return self.company.info()

6.以對象代替數組或者字典

# 最佳化前user = list()user.append("name")user.append("age")user.append("gender")# 最佳化後user = User()user.name=""user.age = ""

7.以常量代替魔法資料

# 最佳化前def mianji(r):    return 3.14 * r * r# 最佳化後PAI = 3.14def mianji(r):    return PAI * r * r

8.合并重複的條件片段

# 最佳化前if True:    amount = price * 0.95    send(amount)else False:    amount = price * 0.85    send(amount)# 最佳化後if True:    amount = price * 0.95else False:    amount = price * 0.85send(amount)

9.擷取資料庫表欄位,按需要擷取

db.session.query(User).all() db.session .query(User.name).all() db.session.query(User).value(User.name)

10.移除不必要的參數

# 如果一些參數在函數體始終用不到,就需要移除

11.將查詢函數和修改函數分開

#如將getUserAndAddLog() 替換成getUser()addLog()#函數職責要分明

 

Python 代碼整潔最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.