Python 复习

函数式编程

  • map(function, sequence): 入参是为函数和列表/元组/字符串,返回值为function(item)列表。
  • filter(function, sequence): 入参为函数和列表/元组/字符串,返回值为item列表/元组/字符串。
  • reduce(function, sequence, starting_value): 入参是为函数和列表/元组/字符串和初始值,返回值为数值
  • lambda : 匿名函数
  • 回调函数 : 函数作为参数
  • 闭包: 绑定外部变量的函数, 惰性计算, 迭代器

构造函数

class Car(object):    country = u'中国'    def __init__(self, length, width, height, owner=None):        self.owner = owner        self.length = length        self.width = width        self.height = height        self.country = "china"

@property描述符

加上@property变成有getter的对象

class Car(object):    country = u'中国'    def __init__(self, owner=None):        self._owner = owner            @property    def owner(self):        return self._owner    @owner.setter    def owner(self, value):        self._owner = value    @owner.deleter    def owner(self):        self._owner = None

重载getattr

#!/usr/bin/env python# -*- coding: utf-8 -*-#copyRight by heibankeclass Car(object):    country = u'中国'    __slots__=('length','width','height','owner','__dict__')        def __init__(self, length, width, height, owner=None):        self.owner = owner        self.length = length        self.width = width        self.height = height            def __getattr__(self,name): # 没找到的时候调用        print "__getattr__",name        return self.__dict__.get(name,None)            def __setattr__(self,name,value):        print "__setattr__",name        if name!='owner':            assert value>0, name+" must larger than 0"        self.__dict__[name]=value            def __delattr__(self,name):        print "__delattr__",name        if name=='owner':            self.__dict__[name]=None

元类:

type(name, bases, attrs) Name : 类名字符串 bases: 父类元组 Attrs: 属性字典

A = type('A', (object,), {'b': 1})a = A()

不可继承的类

class final(type):    def __init__(cls,name,bases,namespaces):        super(final, cls).__init__(name, bases, atts)        for klass in bases:            assert not isinstance(klass, final)

时间

#!/usr/bin/env python# coding: utf-8#copyRight by heibanke# 
1. 从现在开始1000天后和1000天前是哪一天
import datetimea=datetime.date.today()b=datetime.datetime.now()d1=datetime.
timedelta(days=1000)d2=datetime.
timedelta(hours=1000)(a-d1).isoformat()(a+d1).strftime('%m/%d/%Y')b.isoformat()(b-d2)# 
2. 离你的重要纪念日还有多少天important_day=datetime.datetime.
strptime('2008-06-18','%Y-%m-%d') important_day>bd3=b-important_dayd3.dayst=datetime.time(12,11,30)# 
3. 两段程序哪个快些############## time.time and time.clock
 ####################import timea=input("please input 0 or 1:")
 start_time = time.time()start_clock = time.clock()if a:    sum_i=0    for i in range(100000):     
    sum_i+=ielse:    sum_i=sum(range(100000))
    print sum_itime.sleep(2)end_time = time.time()end_clock = time.clock()
    print "time-delta:"print start_time-end_timeprint "clock-delta:"print start_clock-end_clock

文件操作

#!/usr/bin/env python# coding: utf-8#copyRight by heibanke# 1. 从现在开始1000天后和1000天前是哪一天import datetimea=datetime.date.today()b=datetime.datetime.now()d1=datetime.timedelta(days=1000)d2=datetime.timedelta(hours=1000)(a-d1).isoformat()(a+d1).strftime('%m/%d/%Y')b.isoformat()(b-d2)# 2. 离你的重要纪念日还有多少天important_day=datetime.datetime.strptime('2008-06-18','%Y-%m-%d') important_day>bd3=b-important_dayd3.dayst=datetime.time(12,11,30)# 3. 两段程序哪个快些############## time.time and time.clock ####################import timea=input("please input 0 or 1:")start_time = time.time()start_clock = time.clock()if a:    sum_i=0    for i in range(100000):        sum_i+=ielse:    sum_i=sum(range(100000))print sum_itime.sleep(2)end_time = time.time()end_clock = time.clock()print "time-delta:"print start_time-end_timeprint "clock-delta:"print start_clock-end_clock

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏blackheart的专栏

[C#3] 1-扩展方法

1.从DEMO开始 先看一个扩展方法的例子: 1 class Program 2 { 3 public static void Main(...

21810
来自专栏趣谈编程

Unicode与UTF-8的区别

要弄清Unicode与UTF-8的关系,我们还得从他们的来源说起,下来我们从刚开始的编码说起,直到Unicode的出现,我们就会感觉到他们之间的关系

1282
来自专栏chenjx85的技术专栏

leetcode-179-Largest Number(理解规则,自定义cmp函数进行排序)

1、这道题给定一个vector,里面存放着int类型的非负整数,要求把这些非负整数拼起来,尽可能拼成一个最大的整数。

1843
来自专栏大数据风控

R中字段抽取、字段合并、字段匹配

1、字段抽取 字段抽取,是根据已知列数据的开始和结束位置,抽取出新的列 字段截取函数:substr(x,start,stop) tel <- '1892225...

8379
来自专栏Spark学习技巧

大数据基础系列之JAVA引用详解

一,四种引用介绍 从Java SE2开始,就提供了四种类型的引用:强引用、软引用、弱引用和虚引用。Java中提供这四种引用类型主要有两个目的:第一是可以让程序员...

2567
来自专栏jessetalks

Javascript基础回顾 之(一) 类型

  本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Jav...

3777
来自专栏大数据钻研

js中call、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js中关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值...

2965
来自专栏web前端教室

不学不知道,sort()方法中的坑

今天的前端零基础课,在讲到js中的sort()排序方法的时候,说sort()这个方法在给数字排序的时候,根本不是按数字大小来排序的。 它是把数字都当成字符串来看...

19010
来自专栏静晴轩

类数组借用数组方法

于JavaScript如何将对象转化为数组对象,其用法写法已经很常见且完善,比如JQuery中的makeArray函数对此的实现,也是跟大家想的差不多,只是考虑...

3399
来自专栏散尽浮华

Python-面向对象编程

概述: 面向过程:根据业务逻辑从上到下写代码。 函数式:将某功能代码封装到函数中,以后便无需重复编写,进调用函数即可。 面向对象:对函数进行分类和封装,让开发“...

2117

扫码关注云+社区

领取腾讯云代金券