Python 进阶学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 进阶学习笔记相关的知识,希望对你有一定的参考价值。

把函数作为参数

import math
def add(x, y, f):
  return f(x) + f(y)

print add(9, 16, math.sqrt)

map(f, list) 函数

接收一个 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

def f(x):
  return x * x
list = [1, 2, 3, 4]
print map(f, list)  # [1, 4, 9, 16]

reduce(f, list) 函数

def f(x, y):
  return x * y
reduce(f, [1, 2, 3, 4])
# 1*2*3*4

filter(f, list) 函数

过滤不符合条件的元素,返回符合条件元素组成的新的 list

sorted(list) 排序函数
sorted(list, f) 自定义排序

导入模块

import math
from math import pow, sin, log

动态导入模块

try:
    import json
except ImportError:
    import simplejson as json

使用 __future__

Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。

from __future__ import unicode_literals

python 模块管理工具
easy_install
pip

创建类

class Person(object):
    pass
user = Person()

给类的实例添加属性

user.name = wangxi
user.age = 25

初始化实例属性

class Person(object):
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender
user = Person(wangxi, 25, male)
# user.name wangxi
# user.age 25
# user.gender male

对象属性的访问限制(私有属性)

class Car(object):
  def __init__(self, name, color, price):
    self.name = name
    self.color = color
    self.__price = price

Tesla = Car(Tesla, white, $23000)
Tesla.name # Tesla
Tesla.color # white
Tesla.price
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# AttributeError: Car object has no attribute price

创建类属性和方法
绑定在类上,每个实例各自拥有,互相独立

class Human(object):
  address = Earth
  __name = man # 私有属性,在类的实例中无法访问到
  def __init__(self, name):
    self.name = name
  def getName (self): # 类的方法第一个参数一定是 self
    return self.__name # 类的方法中可以访问私有属性
me = Human(wangxi)
me.address # Earth
me.getName() # self 不需要显式的传入

类属性可以动态添加和修改 (所有的实例访问类属性都会改变)

Human.address = China
me.address # China

如果实例属性和类属性冲突,则优先查找实例属性

me.address = Hangzhou
me.address # Hangzhou
Human.address # Earth

继承

class Person(object):
  def __init__(self, name, gender):
    self.name = name
    self.gender = gender

class Student(Person):
  def __init__(self, name, gender, score):
    super(Student, self).__init__(name, gender):
    self.score = score


多态

特殊方法
__str__
将类的实例转变成 str

后面的感觉对于我有点超纲了,暂时就不写下去了。。有空再回来继续学

 

以上是关于Python 进阶学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记-面向对象进阶封装多态继承

python学习笔记-面向对象进阶&异常处理

python学习笔记-面向对象进阶&异常处理

Python学习笔记——进阶篇第八周———异常处理

Python 进阶学习笔记

学习笔记python 进阶特性