python-命名规则、编码风格、文档、运算符重载

命名规则:

  • 类:以大写字母开头的单数名词作为名字,例如用Data,而不用data或Datas。当有多个单词时应该用“驼峰命名法”,例如CreditCard。

  • 函数:以小写单词组成,如有多个单词组成,应该用“_”分割单词,例如 :reverse()、get_score()。如果,函数的唯一目的是返回一个值,那么函数名可以是一个描述返回值的名词。如sqrt()。

  • 变量名:即标识对象的名字应该是一个小写名词,如price。有时也用一个大写字母表示一个数据结构的名称,如用T表示tree。

  • 常量:用大写字母并用“_”隔开单词的标识符通常是一个常量。

另:命名要见名知意,不要用诸如:a,s,v,r,t,这样没有实际意义的名字。最好能够反映行为、责任、命令的单词。

编码风格:

  • 缩进:这是python中很重要的一点、python用缩进来分割代码、代码块。通常是4个空格,但也有用Tab来缩进的,但是在python解释器中,空格和tab制表符是不可以混用的。所以强烈建议使用空格。

  • 命名规范:上面讲过了。

  • 注释:在有歧义或者令人困惑无法理解的地方放上注释,可以让代码的可读性变高,可以快速理解代码。多行注释可以让人能够理解很复杂的代码逻辑。单行注释用#,多行注释用‘‘‘ 多行注释 ’’’。

文档:

python使用一个叫docstring的机制为在源代码中插入文档提供了支持。从形式上来说,文档一般放在类、函数、模块的主体的第一条语句。按照惯例,文档应该限定在""" """之中。
一般来说,第一行用很简短的话概括代码的目的,然后空一行,对函数、类等的参数进行详细介绍。

docstring作为模块、类和函数额一个域进行存储。它可以做文档使用,也可以用多种方式检索。


运算法重载:

自学python很久了,对于面向对象编程一直模棱两可,对于运算符重载更是糊里糊涂。今天我明白了。

先说1 + 1这个式子,这个式子中的“ + ”,它在左右两边都是数值时,会执行加法,但是当左右两边都是字符串时,他又是执行链接运算了,如果是列表类型,它就会返回一个两个列表合起来的新列表。

那么1 + "a"这个式子呢?这个式子是非法的,无法执行。

运算法重载,其实就是重新定义该运算符的作用,比如,我新定义一个Car类,代表车子。并创建了两个实例:car_1和car_2,然后我又执行了:car_1 + car_2,这回发生什么呢?

会报错。因为我们并没有给Car类赋予相加的能力。当然说车子相加也没什么意义。但是我现在就想
car_1 + car_2能输出一辆随机的新车怎么办?就想最近很火的养锟游戏,可以升级。我希望我的车也有这个功能。

则我们可以这么写:

class Car:
    def __init__(self,name,type,price):
        --snip--

    def __add__(self):
        return  Car("奔驰", "S",1000000)

这样我们就可以运行car_1 + car_2可以返回一个奔驰S系轿车。

对于其他的运算符:-、=、*、&、……等一切自带的运算符,或者特殊函数都可以重新赋予新的功能。

学完之后,我感觉我在计算机中我就是上帝,我可以制定一切规则。就好像那个沙盒游戏——我的世界。我可以创造一切。

你可能感兴趣的:(python-命名规则、编码风格、文档、运算符重载)