摘要:
The Singleton PatternThe Singleton pattern is thus known because it restricts instantiation of a class to a single object. Classically, the Singleton ... 阅读全文
posted @ 2014-09-28 23:22
wuhn
阅读(306)
评论(0)
推荐(0)
摘要:
The Module PatternModulesModules are an integral piece of any robust application's architecture and typically help in keeping the units of code for a ... 阅读全文
posted @ 2014-09-28 20:06
wuhn
阅读(297)
评论(0)
推荐(0)
摘要:
In classical object-oriented programming languages, a constructor is a special method used to initialize a newly created object once memory has been a... 阅读全文
posted @ 2014-09-28 18:57
wuhn
阅读(224)
评论(0)
推荐(0)
摘要:
多个人共同操作同一个项目或拷贝项目时,经常会出现类似这样的问题:Undefined symbols for architecture i386:"_OBJC_CLASS_$_xx文件名", referenced from:下面是可能导致这类问题出现的原因及修改:1.相关工程文件未导入你可以直接在这里... 阅读全文
posted @ 2014-09-28 09:42
wuhn
阅读(170)
评论(0)
推荐(0)
摘要:
编辑器的选择(Editor Choices)从初学编程到现在,我用过的编辑器有EditPlus、UltraEdit、Notepad++、Vim、TextMate和Sublime Text,如果让我从中推荐,我会毫不犹豫的推荐Vim和Sublime Text,原因有下面几点:跨平台:Vim和Subli... 阅读全文
posted @ 2014-09-28 09:21
wuhn
阅读(2576)
评论(0)
推荐(4)
摘要:
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1。用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果... 阅读全文
posted @ 2014-09-28 08:06
wuhn
阅读(473)
评论(0)
推荐(0)
摘要:
在程序运行过程中,总会遇到各种各样的错误。有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。还有一类错误是完... 阅读全文
posted @ 2014-09-28 07:58
wuhn
阅读(408)
评论(0)
推荐(0)
摘要:
看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。__slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数。除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我... 阅读全文
posted @ 2014-09-28 03:11
wuhn
阅读(824)
评论(0)
推荐(1)
摘要:
继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。回忆一下Animal类层次的设计,假设我们要实现以下4种动物:Dog - 狗狗;Bat - 蝙蝠;Parrot - 鹦鹉;Ostrich - 鸵鸟。如果按照哺乳动物和鸟类归类,我们可以设计出这样的类的层次:但是如果按照“能跑... 阅读全文
posted @ 2014-09-28 03:02
wuhn
阅读(1601)
评论(1)
推荐(0)
摘要:
在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改:s = Student()s.score = 9999这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,... 阅读全文
posted @ 2014-09-28 02:59
wuhn
阅读(1123)
评论(0)
推荐(0)
摘要:
正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:>>> class Student(object):... pass...然后,尝试给实例绑定一个属性:>>> s = Student()>>>... 阅读全文
posted @ 2014-09-28 02:55
wuhn
阅读(417)
评论(0)
推荐(0)
摘要:
数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有很多高级特性,允许我们写出非常强大的功能。我们会讨论多重继承、定制类、元类等概念。 阅读全文
posted @ 2014-09-28 02:53
wuhn
阅读(363)
评论(0)
推荐(0)
摘要:
当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?使用type()首先,我们来判断对象类型,使用type()函数:基本类型都可以用type()判断:>>> type(123)>>> type('str')>>> type(None)如果一个变量指向函数或者类,也可以用type()... 阅读全文
posted @ 2014-09-28 02:52
wuhn
阅读(15357)
评论(1)
推荐(1)
摘要:
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接... 阅读全文
posted @ 2014-09-28 02:48
wuhn
阅读(8915)
评论(4)
推荐(3)
摘要:
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:>>> bart = Student('Bart Simpson', 98)>>... 阅读全文
posted @ 2014-09-28 02:45
wuhn
阅读(977)
评论(0)
推荐(0)
摘要:
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。仍以Student类为例,在Python中,定义类是通过class关键字:class Stu... 阅读全文
posted @ 2014-09-28 02:41
wuhn
阅读(45335)
评论(4)
推荐(20)
摘要:
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把... 阅读全文
posted @ 2014-09-28 02:37
wuhn
阅读(1063)
评论(0)
推荐(1)
摘要:
>>> d = {'a':1}>>> print '%s' % 1,d1 {'a': 1}>>> print '%s %s' % 1,dTraceback (most recent call last): File "", line 1, in TypeError: not enough argu... 阅读全文
posted @ 2014-09-28 02:35
wuhn
阅读(411)
评论(0)
推荐(0)
摘要:
Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动。有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了。从Python 2.7到Python 3.x就有不兼容的一些改动,比如2.x里的字符串用'xxx'表示str,Unicode字符串用u'... 阅读全文
posted @ 2014-09-28 02:31
wuhn
阅读(322)
评论(0)
推荐(0)
摘要:
在Python中,安装第三方模块,是通过setuptools这个工具完成的。如果你正在使用Mac或Linux,安装setuptools本身这个步骤就可以跳过了。如果你正在使用Windows,请首先从这个地址下载ez_setup.py:https://pypi.python.org/pypi/setu... 阅读全文
posted @ 2014-09-28 02:19
wuhn
阅读(594)
评论(0)
推荐(0)
摘要:
Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。我们以内建的sys模块为例,编写一个hello的模块:#!/usr/bin/env python# -*- coding: utf-8 -*-' a test module '__author__ = 'Michael... 阅读全文
posted @ 2014-09-28 02:10
wuhn
阅读(502)
评论(0)
推荐(0)
摘要:
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。... 阅读全文
posted @ 2014-09-28 02:02
wuhn
阅读(296)
评论(0)
推荐(0)
摘要:
functools.partial可以设置默认参数和关键字参数的默认值Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调... 阅读全文
posted @ 2014-09-28 01:45
wuhn
阅读(1307)
评论(1)
推荐(0)
摘要:
由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。>>> def now():... print '2013-12-25'...>>> f = now>>> f()2013-12-25函数对象有一个__name__属性,可以拿到函数的名字:>>> now.__... 阅读全文
posted @ 2014-09-28 01:12
wuhn
阅读(846)
评论(0)
推荐(0)
摘要:
当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:>>> map(lambda x: x * x, [1, 2, 3, 4, 5... 阅读全文
posted @ 2014-09-28 01:02
wuhn
阅读(8105)
评论(0)
推荐(0)
摘要:
传入函数要理解“函数本身也可以作为参数传入”,可以从Python内建的map/reduce函数入手。如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clusters”,你就能大概明白map/reduce的概念。... 阅读全文
posted @ 2014-09-28 00:59
wuhn
阅读(4692)
评论(0)
推荐(5)

浙公网安备 33010602011771号