关于代码的重构

# 需求:如果是13位的数字,或者是10位的数字,数字中有"-",那么就判断为isbn,否则就是key,这里有两个编程方面的思想要注意:一个可以把这个判断做为一个函数封装起来,这是为了1容易阅读,一看你的函数名就知道这个函数是做什么的,如果一个表达式出现两次,也可以把它封装成一个变量。第二个就是怎么把If elsea语句写得简短,代码少,执行快。你就要让计算机减少判断。把容易出现的情况写在前面。
判断语句里如果有很耗时操作,比如数据库查询。应该放在后面
# 需要封装一个函数,第一,放在试图函数里,代码在多,不易阅读,第二,有可能其它地方也要用到这个判断,第三,占用太多视图函数代码行

# 如果x是13位,而且是数字,那么就判断x为isbn,或者x是10位,且是数字,中间可能有"-"。那么也判断是数字,其它情况就是关键字。
# 版本一
def is_isbn_or_key(x):
    if len(x) == 13 and x.isdigit():
        isbn_or_key = 'isbn'
    if  '-' in x and len(x.replace('-', '')) == 10 and x.replace('-', '').isdigit():
        isbn_or_key = 'isbn'
    else:
        isbn_or_key = 'key'

# 版本二:提取出y = x.replace('-', '')
def is_isbn_or_key(x):
    if len(x) == 13 and x.isdigit():
        isbn_or_key = 'isbn'

    y = x.replace('-', '')

    if  '-' in x and len(y) == 10 and y.isdigit():
        isbn_or_key = 'isbn'
    else:
        isbn_or_key = 'key'

# 版本三:优化if else,第一个原则,把很有可能出现假的放在前面,这样后面就不用运行就过了,第二个原则是:有一些条件判断是要查询数据库的,这样一些也应该放在后面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值