进阶学习 学习 blog 私有属性 属性和方法 .get line person
把函数作为参数
- 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 进阶学习笔记
来源: http://www.bubuko.com/infodetail-2317159.html