Python 进阶学习笔记
把函数作为参数
import math
def add(x, y, f):
return f(x) + f(y) print add(, , math.sqrt)
map(f, list) 函数
接收一个 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
def f(x):
return x * x
list = [, , , ]
print map(f, list) # [, , , ]
reduce(f, list) 函数
def f(x, y):
return x * y
reduce(f, [, , , ])
# ***
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 =
初始化实例属性
class Person(object):
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
user = Person('wangxi', , 'male')
# user.name 'wangxi'
# user.age
# 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 , 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进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...
- Python进阶 学习笔记(一)
(笔记范围:第一章 课程介绍:第二章 函数式编程:第三章 模块) Python支持的函数式编程 不是纯函数式编程:允许有变量 支持高阶函数:函数也可以作为变量传入 支持闭包:有了闭包就能返回函数 有限 ...
- python进阶学习笔记(四)--多线程thread
在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制(或其它类型)的数据.它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命期.进程( ...
- python进阶学习笔记(三)
3.类的继承 3.1,python中什么是类的继承 答案是肯定的. 也就是说,如果一个实例是一个子类,那么它也是一个父类 总是从某各类继承,如果没有合适的类,就要从object类继承:super(). ...
- python进阶学习笔记(二)
1.模块和包的概念 python的解决方案是把同名的模块放到不同的包中 1.1,导入模块 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 ...
- Python进阶 学习笔记(三)
(涉及内容:定制类) __str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__( ...
- Python进阶 学习笔记(二)
(涉及内容:面向对象,类的继承) 定义类并创建实例 在Python中,类通过 class 关键字定义.以 Person 为例,定义一个Person类如下: class Person(object): ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- Python Click 学习笔记(转)
原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...
随机推荐
- python2.7练习小例子(二十六)
26):题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 程序分析:学会分解出每一位数. 程序源代码: #!/usr/bin/python # ...
- 4299: Codechef FRBSUM
4299: Codechef FRBSUM https://www.lydsy.com/JudgeOnline/problem.php?id=4299 分析: 主席树. https://blog.se ...
- Sql Server 2008 R2数据库中插入中文变成了问号
通过Insert语句插入数据库中,结果中文都变成了乱码.原因是在数据库中有一个属性需要设置,可以通过Sql server manager studio来进行设置,也要可以通过代码来设置 ...
- (原)Android到IOS开发的转换(一)
序)闲扯几句 很早就想入手ios开发,但是一直没有机会,个人没有水果机器,上个公司上班的那台mac mini虽然就在我身边,灰都有一层了,但是一直没有机会开机学习下,因为事多,自上一篇文章后,离职后, ...
- 『JavaScript』封装
封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏.通过封装可以强制实施信息隐藏. 在JavaScript中,并没有显示的声明私有成员的关键字等.所以要想实现封装/信息隐藏就需要从另外的思路出 ...
- 常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctyp ...
- 常用模块(chardet)
作用:检测二进制的编码格式,不是百分百正确 import chardet f = open('test.txt', 'rb')data = f.read()print(data)result = ch ...
- 【app.js】配置及App函数说明
app.js中的App函数用来注册一个小程序或设置全局变量. App函数: 语法:App(Object) 参数: Object json对象 说明: App函数必须在app.js中调用 ...
- 1098 Insertion or Heap Sort (25 分)(堆)
这里的第二序列相当于是排序还没拍好的序列 对于第二个样例的第二个序列其实已经是大顶堆了 然后才进行的堆排序 知道这个就好做了 #include<bits/stdc++.h> using n ...
- python进阶训练
1.列表,字典,集合解析 from random import randint #列表解析,选出大于0的元素 data=[randint(-10,10)for i in range(10)] resu ...