随笔分类 -  Pythonic

摘要:参考: "__slots__" NOTE 1.动态语言灵活绑定属性及方法。 给对象h绑定了属性name和age。 绑定一个新的方法: 但是这种绑定的方法并不存在于新建的对象: 给类绑定一个方法,解决这个问题: 通常情况下,上面的f方法可以直接定义在class中,但动态绑定允许我们在程序运行的过程中动 阅读全文
posted @ 2017-03-02 23:19 Wasdns 阅读(180) 评论(0) 推荐(0)
摘要:参考: "ryu入门教程" "ryu" ryu/ryu Structure ryu/ryu/app 基于ryu控制器开发的app,内含ryu的图形界面、北向防火墙、北向QoS、简易L2交换机、L3路由器等。 ryu/ryu/base 内含app_manager.py脚本,用于加载ryu应用程序,接受 阅读全文
posted @ 2017-02-28 23:57 Wasdns 阅读(1367) 评论(0) 推荐(0)
摘要:参考: "实例属性和类属性" NOTE Python是动态语言,根据类创建的实例可以任意绑定属性。 同时,也可以直接给类绑定一个属性: 当我们定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到。 当对象也定义了一个同名的属性时,会将原有的类属性覆盖掉,当删除对象的这个属性时,再次访 阅读全文
posted @ 2017-02-28 20:31 Wasdns 阅读(155) 评论(0) 推荐(0)
摘要:参考: "获取对象信息" NOTE 1.type()函数可以用来判断对象的类型: 如果一个变量指向函数或者类,也可以用type()判断. 也可以用来判断两个变量的类型是否相等: 判断一个对象是否为函数: 2.isinstance():可以用来判断一个对象是否是某一个类的对象 能够用type()函数判 阅读全文
posted @ 2017-02-27 21:33 Wasdns 阅读(182) 评论(0) 推荐(0)
摘要:参考: "继承和多态" NOTE 著名的开闭原则: 对扩展开放:允许新增Animal子类; 对修改封闭:不需要修改依赖Animal类型的Animal_func()等函数。 1.eg. 2.在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Su 阅读全文
posted @ 2017-02-26 10:33 Wasdns 阅读(218) 评论(0) 推荐(0)
摘要:参考: "访问限制" NOTE 1.eg. 2.在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,如果要确保外部代码 不能随意修改对象内部的状态 ,就需要有private属性的存在。 如果要让内部属性不被外部访问,可以把属性的 阅读全文
posted @ 2017-02-25 16:50 Wasdns 阅读(215) 评论(0) 推荐(0)
摘要:参考: "类和实例" 注意理解第七点。 NOTE: 1.类是抽象的模板,比如Student类,实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 一个是抽象模板,一个是具体实例。 Hint: Python中继承的方式 = 在类名之后加上 。 上述Studen 阅读全文
posted @ 2017-02-23 22:41 Wasdns 阅读(243) 评论(0) 推荐(0)
摘要:参考: "OOP" NOTE 1.面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 2.面向过程的程序设计把计算机程序视为一系列的 命令集合 ,即 一组函数的顺序执行 。为了简 阅读全文
posted @ 2017-02-23 22:17 Wasdns 阅读(269) 评论(0) 推荐(0)
摘要:参考: "使用模块" NOTE 1.内建sys模块: 第5行是一个字符串,表示模块的 文档注释 ,任何模块代码的第一个字符串都被视为模块的文档注释. __author__变量把作者写进去. 2.args参数: 当执行: 时,args只有一个参数,参数0: 执行: 时,args有两个参数,参数0和1: 阅读全文
posted @ 2017-02-22 22:18 Wasdns 阅读(188) 评论(0) 推荐(0)
摘要:参考: "模块" NOTE 1.模块:一个.py文件称为一个模块。 2.代码模块化的意义:a.提升程序的可维护性 b.不用重复造轮子 3.避免模块冲突,解决方法:引入了按目录来组织模块的方法,称为包(Package)。 eg.abc.py = abc模块,xyz.py = xyz模块 倘若出现冲突 阅读全文
posted @ 2017-02-21 23:39 Wasdns 阅读(206) 评论(0) 推荐(0)
摘要:"偏函数" NOTE 1.int()函数提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换: 可以看到,后面的base指明了输入的进制,并将其转换为10进制。 如果要转换大量的二进制数,就很麻烦,一般使用函数封装起来,调用就可以了: 2.functools.partia 阅读全文
posted @ 2017-02-20 22:19 Wasdns 阅读(209) 评论(0) 推荐(0)
摘要:"修饰器" NOTE 1.函数对象有一个__name__属性,可以拿到函数的名字: 2.增强now函数的功能,又不想重新对now函数进行定义,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。 本质上,装饰器就是一个返回函数的高阶函数: 把@log放到now()函数的定义 阅读全文
posted @ 2017-02-19 22:15 Wasdns 阅读(543) 评论(0) 推荐(0)
摘要:参考: "匿名函数" NOTE 1.Python对匿名函数提供了有限的支持。 eg. 可以看出,lambda相当于函数: 2. 关键字lambda表示匿名函数 ,冒号前面的x表示函数参数。 可以参考这篇博客: "Python中lambda表达式学习 " 3.匿名函数有个限制,就是只能有一个表达式,不 阅读全文
posted @ 2017-02-18 20:14 Wasdns 阅读(197) 评论(0) 推荐(0)
摘要:NOTE 1.VF的作用:生成请求的响应。一般来说请求会改变程序的状态,这种变化会在视图函数中产生。 eg.用户在网站中注册了一个新账户,用户在表单中输入电子邮件地址和密码,然后提交到服务器,服务器接收到请求,然后Flask将请求分发到处理注册的视图函数。这个视图函数首先要访问数据库添加新用户,然后 阅读全文
posted @ 2017-02-18 15:53 Wasdns 阅读(219) 评论(0) 推荐(0)
摘要:参考: "返回函数" NOTE 1.高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 eg.求和函数 可以看到slowcalsums函数返回的是一个函数,赋值给resf之后resf指向该函数,调用resf()得到计算结果。 2.上例中, 在函数slowcalsums中定义了函数cal 阅读全文
posted @ 2017-02-17 20:15 Wasdns 阅读(251) 评论(0) 推荐(0)
摘要:参考: "sorted" NOTE 1.sorted,快速排序,时间复杂度O(nlogn)渐进最优. 上例:sorted函数返回排序好的list。 2.Python的sorted函数支持传入特定的函数,先将该函数作用于所有的列表元素,再进行排序。注意,该函数是用于比较大小的依据。 eg. 3.默认情 阅读全文
posted @ 2017-02-16 20:58 Wasdns 阅读(316) 评论(0) 推荐(0)
摘要:NOTE 1.hello.py 通过修饰器的route方法添加动态路由: 2.程序和请求上下文: 请求上下文的作用:临时将某一进程的视图函数需要访问的请求对象变为全局可访问,同时不会干扰其他的进程。 eg.导入request请求上下文,使视图函数能够访问请求的游览器对象。 3.Flask上下文全局变 阅读全文
posted @ 2017-02-16 15:04 Wasdns 阅读(1124) 评论(0) 推荐(0)
摘要:NOTE 1.初始化:所有的Flask程序都必须创建一个程序实例. 2.路由和视图函数(VF): Clients (requests) Server Flask Object (mapping/route) View Function (responses) Server Clients 3.启动服 阅读全文
posted @ 2017-02-16 00:46 Wasdns 阅读(211) 评论(0) 推荐(0)
摘要:reference: 《Flask Web 开发》 Environment Python 3 Mac OSX Introductory Chapter: 安装 1.安装第三方工具 virtualenv 显示其版本信息: 2.git clone 文件夹用以保存代码: 3.在flasky中创建虚拟环境v 阅读全文
posted @ 2017-02-14 22:18 Wasdns 阅读(180) 评论(0) 推荐(0)
摘要:参考: "filter" Problem 遇到该语法错误,一般是由于 括号不匹配 问题。 Note 1.filter 用于过滤list,关键在于正确实现一个“筛选”函数。 eg.过滤得到偶数: filter function 是过滤判断函数,当返回为True时执行过滤。 2. filter()函数返 阅读全文
posted @ 2017-02-14 19:21 Wasdns 阅读(2123) 评论(0) 推荐(0)