Python 代码整洁优化,,1.提炼函数# 提炼


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 代码整洁优化

评论关闭