您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    怎样让你写的Python代码更优雅?(2)
    时间:2020-04-03 21:21 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    嵌套模块在 Python 中并不常见——至少我之前没有见过像module.class.subclass.function这样的东西——可读性不好。虽然在另一个子模块中构建子模块能够会增加代码行数,但我们不希望用户被不直观的语法所困扰。

    7. 距离胜于紧凑

    不要在一行中插入太多代码,这会给读者带来压力。建议最大行长度 79 个字符。这样,当运用代码评审工具时,编辑器窗口宽度限制才能很好任务。

    运用 Python 从 Unsplash 下载图片

    8. 可读性很重要

    代码的阅读次数比编写次数多。思索下缩进,它让代码更容易阅读,比较下面的代码:

    money = 10000000 

     

    print("I earn", money, "dollars by writing on medium."

     

    money = 10_000_000 

     

    print(f"I earn {money} dollars by writing on medium."

    在本例中,代码结果相反,但是后一段代码经过运用下划线占位符和 f-string 提供了更好的可读性。在 Python 3.6 发布后,f-string 末尾让格式化变得更复杂,并且在处置包含更多变量的更长的句子时更弱小。

    一个作家的作风不应该在他的思想和读者的思想间设置阻碍。

    9. 特例不足以特殊到违犯这些准绳

    关键是为普通状况提供一向支持,尝试将一个繁琐的项目重新组织成一个复杂方式。例如,依据其功用,结构化类的代码或将其分类到不同的文件中,即使 Python 并不强迫你这样做。由于 Python 是一种多范式编程言语,处置成绩的一个弱小办法是创立对象,这就是所谓的面向对象编程。

    面向对象编程是一种组织顺序结构的编程范式,让属性和行为可以被看作是独自对象。它的优点是直观和易于操作,许多教程都很好地解释了这些概念。

    10. 适用性胜过地道

    这句格言与前一句相矛盾,它提示我们保持它们之间的平衡

    11. 永远不要默默地无视错误

    放差错误最终会留下隐式 Bug,并且这些 Bug 更难被发现。Python 提供了强健的错误处置,与其他言语相比,顺序员运用该工具并不难。

    try

     

    x = int(input("Please enter an Integer: ")) 

     

    except ValueError: 

     

    print("Oops! This is not an Integer."

     

    except Exception as err: 

     

    print(err) 

     

    else

     

    print('You did it! Great job!'

     

    finally

     

    print('ヽ(✿゚▽゚)ノ'

     

    1. 这段代码能够中缀。 

     

    2. 假设出现值错误就会触发。 

     

    3. 处置值错误之外的错误。 

     

    4. 假设没有触发错误就执行。 

     

    5. 不管能否触发错误都执行。 

    依据 Python 文档:“即使一个语句或表达式在语法上是正确的,在试图执行它时也能够会招致错误。”特别是关于大型项目,我们不希望在耗时的计算后,代码崩溃。这就是异常管理的魅力所在。

    12. 除非明白需求这样做

    在某些状况下,小错误不会困扰你。不过,也许你想捕获特定错误。要取得关于特定错误音讯的更多细节,我建议阅读官方的内置异常文档并找到你需求的内容。

    https://docs.python.org/3/library/exceptions.html

    13. 面对不置可否,拒绝猜测

    重要的是要不断学习,享用应战,容忍歧义。我们都不知道最终会怎样。——玛蒂娜·霍纳

    这句话优雅而抒情,但在编程中不是一个好的隐喻。歧义能够是指不清楚的语法、复杂的顺序结构或触发错误音讯的错误。例如,第一次运用numpy模块时的一个复杂错误:

    import numpy as np 

     

    a = np.arange(5

     

    print(a < 3

     

    if a < 3

     

    print('smaller than 3'

    ValueError: 具有多个元素的数组的真值不明白,请运用 a.any() 或 a.all()

    假设执行下面代码,你将在输入中发现一个由 5 个布尔值组成的数组,表明值在 3 以下。因此,if语句不能够确定形状。音讯中显示的内置函数.all() 和.any()用于替代 And/Or。

    import numpy as np 

     

    a = np.array([True, True, True]) 

     

    b = np.array([False, True, True]) 

     

    c = np.array([False, False, False]) 

     

    print(a.all()) 

     

    print(a.any()) 

     

    print(b.all()) 

     

    print(b.any()) 

     

    print(c.all()) 

     

    print(c.any()) 

    输入表明,.all()仅在一切项都为True时才前往True,而.any()在有一项为True时就前往True。

    14. 处置成绩最直接的办法应该有一种,最好只要一种 (责任编辑:admin)