美文网首页Python每日分享python
值得收藏!编写干净的 Python 代码的 5 个技巧!

值得收藏!编写干净的 Python 代码的 5 个技巧!

作者: Alex是大佬 | 来源:发表于2022-04-16 14:57 被阅读0次

    平时是否思考过如何编写干净的 Python 代码吗?

    今天我将给大家分享五个技巧,确保你的代码正常工作、易于阅读并充分利用 Python 提供的功能模块。喜欢本文记得关注、点赞。

    使用易于记忆的变量名

    通常在编程时,我们不会停下来考虑一个易于阅读、发音和记忆的描述性变量名称。这是一个不好的做法,因为我们将在不考虑描述性变量名称时节省的时间,我们将在未来花费它来尝试理解该变量应该做什么。

    ❌Bad way

    from datetime import date
    ymdstr = date.now().isoformat()
    

    ✅Good way

    from datetime import date
    currentDate = date.now().isoformat()
    

    哪个更好地描述了变量的功能?ymdstr 还是 currentDate?

    在声明变量并为它选择一个好名字时,最好多花几秒钟,而不是在未来浪费两倍(或三倍)的时间试图理解它的功能是什么。

    创建易于搜索的变量名称

    每个程序员都应该知道的一件事是,在我们的编程生涯中,我们将花费更多的时间阅读代码并尝试理解它,而不是编写它。

    ❌Bad way

    # What the h*ck is 420 for?
    result = serializer.serialize(data, 420)
    

    ✅Good way

    json = serializer.serialize(data, sort_keys=True, indent=4)
    如果我们停下来阅读两个代码摘录(好的和坏的),我们会意识到在坏代码摘录之前快速理解好的代码摘录要容易得多。

    使用具有高度描述性的名称

    当你将函数作为参数送给另一个函数时,它导致的唯一原因是我们无法正确遵循代码并且我们很难理解它的作用。

    ❌Bad way

    import re
    
    address = 'S Grand Ave, LA 90013'
    
    city_zip_code_regex = re.compile("^[^,]+,\s*(.+?)\s*(\d{5})$")
    
    matches = city_zip_code_regex.match(address)
    
    save_city_zip_code(matches.group(1), matches.group(2))
    

    ✅Good way

    address = 'S Grand Ave, LA 90013'
    
    city_zip_code_regex = re.compile("^[^,]+,\s*(?P<city>.+?)\s*(?P<zipcode>\d{5})$")
    
    matches = city_zip_code_regex.match(address)
    
    save_city_zip_code(matches.group('city'), matches.group('zipcode'))
    

    通过这个例子,我们可以看到如何通过命名子模式来减少正则表达式的依赖。这使得代码更容易阅读和理解。

    不要过度使用 if-else

    很多时候,我们并没有过多考虑未来,在某些时候我们可能不得不修改代码,所以我们尽量不要滥用 if-else。if-else嵌套越多,代码就越难理解。

    ❌Bad way

    def is_shop_open(day: str):
     if day:
      day = day.lower()
      if day == 'friday':
       return True
      elif day == 'saturday':
       return True
      elif day == 'sunday':
       return True
      else:
       return False
     else:
      return False
    

    ✅Good way

    def is_shop_open(day: str):
     
     for open_day in ['friday','saturday','sunday']:
      if day == open_day:
       return True
    
     return False
    

    看看这个例子有多干净。行数更少,更容易理解。记住:显式优于隐式。

    不要添加不必要的上下文

    这个小的技巧是基于"不要重复自己"。如果你拥有的任何类或对象的名称已经描述了某些内容或提供了有关其功能的明确信息,那么在变量名称中重复自己是不好的。

    ❌Bad way

    class Car:
    
     carMake = ''
     carModle = ''
     carColor = ''
        #...
    }
    

    ✅Good way

    class Car:
     make = ''
     modle = ''
     color = ''
        #...
    

    通过这种方式,我们不会重复汽车,因为它过于重复,并没有真正为我们增加价值。记住,越简单越好。

    总结

    如何编写更简洁、更高效的 Python 代码不仅考验一个人的编码内功,更能让阅读代码的人容易理解,提升工作效率。

    相关文章

      网友评论

        本文标题:值得收藏!编写干净的 Python 代码的 5 个技巧!

        本文链接:https://www.haomeiwen.com/subject/vehhertx.html