Python -- python语法
流月飞星
程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂
展开
-
类和对象
1.类名第一个字母大写,(函数小写)便于区分2.类分为属性(变量)和方法(函数)3.面向对象编程特点:封装:对外部隐藏对象的工作细节 继承:子类自动共享父类之间的数据和方法的机制 多态:可以对不同类的对象调用相同的方法,产生不同的结果原创 2016-12-21 23:03:46 · 304 阅读 · 0 评论 -
python的内存管理机制
Python的内存管理机制2016-05-21 • 分类: Python • 标签: Pythonpython的内存管理分为三个方面:引用计数垃圾回收内存池机制浅析引用计数python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。转载 2017-10-27 09:48:49 · 279 阅读 · 0 评论 -
python 的继承
由于子类继承父类时,如果子类有和父类相同的属性和方法时,会自动覆盖父类的属性和方法。有两种方法解决:1.调用未绑定的父类方法(此时self是子类的实例方法) 2.使用super() 方法不用实例绑定self原创 2017-10-24 18:21:53 · 229 阅读 · 0 评论 -
__repr__作用
Python中这个_repr_函数,对应repr(object)这个函数,返回一个可以用来表示对象的可打印字符串:尝试生成这样一个字符串,将其传给 eval()可重新生成同样的对象 ;否则,生成用尖括号包住的字符串,包含类型名和额外的信息(比如地址) ;一个类(class)可以通过 __repr__() 成员来控制repr()函数作用在其实例上时的行为。转载 2017-11-17 15:46:21 · 7124 阅读 · 2 评论 -
正则表达式
正则表达式 什么是正则表达式:描述字符串排列的一套规则。基础知识1.原子 原子正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子(1)普通字符作为原子(2)非打印字符作为原子 :字符串中用于格式控制的字符 如 “\n”,“\t” (3)通用字符作为原子:一个原子可以匹配一类字符 “\w” ,"\W","\d","\D" ,"\s","\S"原创 2017-11-13 21:42:45 · 608 阅读 · 0 评论 -
深入理解闭包
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的根本目的是以某种逻辑方式组转载 2017-11-16 22:03:18 · 343 阅读 · 0 评论 -
Python中的作用域规则:最内嵌套作用域规则 和 LEGB
(1)最内嵌套作用域规则:由一个赋值语句引进的名字在这个赋值语句所在的作用域里是可见(起作用)的,而且在其内部嵌套的每个作用域里也可见,除非它被嵌套于内部的,引进同样名字的另一条赋值语句所遮蔽/覆盖。(2)LEGB:符号表的搜索顺序是Local -> Enclosing Function -> Global -> Built-in例如(下面实例会出错):--------转载 2017-11-16 20:49:35 · 585 阅读 · 0 评论 -
为什么需要静态方法?
首先,定义一个Pizza类:class Pizza(object): def cook(self): return 0我们可以得到:#cook是一个方法。>>> Pizza.cook#要调用cook方法必须实例化Pizza类。>>> Pizza.cook()Traceback (most recent call last):F转载 2017-11-16 21:24:47 · 1745 阅读 · 0 评论 -
Python魔法方法--属性
__getattr__(self, name)当用户试图获取一个不存在的属性时的行为__getattribute__(self, name)当该类的属性被访问时的行为__setattr__(self, name,value)当一个类属性被设置的行为原创 2016-12-20 22:54:06 · 254 阅读 · 0 评论 -
Python魔法方法--基本的魔法方法
__new__(cls[,...]) 1.__new__是在一个对象实例化时候所调用的第一个方法2.他的第一个参数是这个类,其他的参数是用来直接传递给__init__方法3.__new__决定是否使用该__init__方法,因为.__new__可以直接调用其他类的构造方法,或者返回别的实例对象来作为本类的实例,如果__new__没有返回实例对象,则__init__不会被调用原创 2016-12-20 21:45:40 · 2036 阅读 · 0 评论 -
python的魔法方法
魔法方法1.魔法方法总是被双下划线包围,如:__init__2.魔法方法是面向对象的Python的一切,如果不知道魔法方法,说明没能意识到面向对象的Python的强大3.魔法方法的魔力体现在他们总是能在适当的时候被自动调用原创 2016-12-20 20:59:00 · 428 阅读 · 0 评论 -
面向对象编程
1.方法的第一个参数为self,可以识别是哪个对象在调用方法(相当于c++的this指针)2.__init__() 实例化对象初始化时调用的方法,(相当于c++的构造函数)3.Python 的属性和方法都是公有的,都可以通过(.)操作符访问。为了实现私有,Python使用了name mangling(名字改编)的假私有方式 __变量(函数)实际上等于 _Person__name原创 2016-12-21 23:49:03 · 238 阅读 · 0 评论 -
类 -- 继承
1.单一继承 class DerivedClassName(BaseClassName):……2.多重继承class DerivedClassName(Base1, Base2, Base3):……如果子类定义与父类同名的方法或者属性,则会自动覆盖父类对应的方法和属性,如果想调用与子类同名的父类方法和属性有2种方法:(1)调用未绑定的父类方法如子类Sha原创 2016-12-22 21:45:14 · 219 阅读 · 0 评论 -
lambda 表达式
lambda 表达式为匿名函数,形式为 lambda 参数:返回值•Python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如说我们只是需要写个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。•对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lam原创 2016-12-22 22:21:10 · 275 阅读 · 0 评论 -
BIF--filter() 过滤器 和 map()映射
Help on class filter in module builtins:class filter(object) | filter(function or None, iterable) --> filter object | | Return an iterator yielding those items of iterable for which function(原创 2016-12-22 22:32:55 · 222 阅读 · 0 评论 -
Python爬虫--访问互联网
使用urllib包 urllib.request.open()打开网页 使用encode()decode()解码•URL的一般格式为(带方括号[]的为可选项):protocol :// hostname[:port] / path /[;parameters][?query]#fragment•URL由三部分组成:–第一部分是协议:http,https,ftp,file,原创 2016-12-22 23:15:34 · 823 阅读 · 0 评论 -
GUI的终极选择--tkinter
import tkinter as tkapp = tk.Tk() //生成root窗口 top levelapp.title("FishC Demo")theLabel = tk.Label(app, text="我的第二个窗口程序!")theLabel.pack() //自动调节app.mainloop() //主事件循环原创 2016-12-24 18:50:32 · 1004 阅读 · 0 评论 -
魔法方法--迭代器
迭代:是重复反馈的过程,其目的通常是为了接近并达到所需的目标或结果。每一次对过程的重复被称为一次迭代,而每一次迭代的结果被用来作为下一次迭代初始值。•iter()–__iter__()•next()–__next__()原创 2016-12-25 13:12:17 · 289 阅读 · 0 评论 -
__name__属性的含义
所有的模块都用一个__name__属性,name的值取决于如何应用模块,作为独立程序运行时,__name__属性的值为“__main__”,而作为模块导入的时候,这个值为模块的名字原创 2016-12-25 14:16:55 · 868 阅读 · 0 评论 -
Python --生成器
转自http://www.oschina.net/translate/improve-your-python-yield-and-generators-explained在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况。一些话题("if/else控制流" 或者 "定义和使用函数")对于大多数学生是没有问题的。但是有一些话题,大多数学生只有很少,转载 2016-12-25 13:38:26 · 306 阅读 · 0 评论