Python学习笔记(一)

来源:互联网 发布:mac ipython 编辑:程序博客网 时间:2024/05/31 18:59

感叹一下,学习Python的过程,就是在不断感叹“卧槽好厉害”,‘我去还有这种操作?’的过程。

过去的语言相比之下,变得繁复和冗余,python简洁好用的特点,震撼到了我


==================================================================================

特性1:

命名关键字

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。


优点:命名关键字可以让代码参数更清晰,简洁;

有默认参数值的函数,有了命名关键字后,更易阅读和使用

==================================================================================

特性2:

切片(Slice)操作符

>>> L[0:3]['Michael', 'Sarah', 'Tracy']

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引012,正好是3个元素。

用法包括但不限于:取全部值 L[:],    取后十个值 L[-10:],    每五个取一次 L[::5]


优点:有了切片操作,很多地方的循环就不再需要了哈哈(一个冒号拯救世界嗷)

==================================================================================

特性3:

闭包(Closure)

def print_msg():    # print_msg 是外围函数    msg = "zen of python"    def printer():        # printer 是嵌套函数        print(msg)    return printeranother = print_msg()# 输出 zen of pythonanother()

这里的 another 就是一个闭包,闭包本质上是一个函数,它有两部分组成,printer 函数和变量 msg。闭包使得这些变量的值始终保存在内存中。


优点:1.哪里可以访问到这个包裹,哪里就可以访问到这个自由变量;2.闭包避免了使用全局变量

==================================================================================

特性4:

作用域(private)

def _private_1(name):    return 'Hello, %s' % namedef _private_2(name):    return 'Hi, %s' % namedef greeting(name):    if len(name) > 3:        return _private_1(name)    else:        return _private_2(name)

我们在模块里公开greeting()函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting()函数不用关心内部的private函数细节

优点:外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。

==================================================================================

特性5:

动态语言(区别于Java的静态语言)

class Student(object):    def __init__(self, name):        self.name = names = Student('Bob')s.score = 90

根据类创建的实例,可以任意绑定属性

优点:定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到。
 

==================================================================================

特性6:

多继承

class Dog(Mammal, Runnable):    pass

能继承多个方法和类,不解释