- 博客(13)
- 资源 (8)
- 收藏
- 关注
转载 Python 上下文管理器与with语句
Python中把进入代码块前调用__enter__ 方法并在离开代码块后调用__exit__方法的对象作为上下文管理器,本文中我们就来深入解析Python中的上下文管理器,来看看上下文管理器的作用及用法:1. 上下文管理器是什么?举个例子,你在写Python代码的时候经常将一系列操作放在一个语句块中:(1)当某条件为真 – 执行这个语句块(2)当某条件为真 – 循环执行这个语句块...
2018-08-25 22:58:28 224
原创 Python 列表推导 、生成器表达式与声明式编程
1、****列表推导*********用到函数的一个常见的操作是将其用于列表的所有项,并使用结果创建一个新的列表。例如:# coding=utf-8'''****列表推导*********用到函数的一个常见的操作是将其用于列表的所有项,并使用结果创建一个新的列表'''nums=[1,2,3]squares=[]n=11for n in nums: squares.a...
2018-08-25 12:03:33 337
原创 Python将函数作为闭包
在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。—— 维基百科就是当内部的函数被当成对象返回时,夹带了外部变量,就形成了一个闭包。闭包将捕捉内部函数执行所需的整个环境。看例子:# coding=utf-8def...
2018-08-24 22:22:39 460
转载 Python静态作用域名字搜索规则
详细见<Python进阶_关于命名空间与作用域(详解)>https://www.jb51.net/article/114951.htm在程序中引用了一个名字,Python是怎样搜索到这个名字呢?在程序运行时,至少存在三个命名空间可以被直接访问的作用域:Local首先搜索,包含局部名字的最内层(innermost)作用域,如函数/方法/类的内部局部作用域;Enclosi...
2018-08-24 13:19:33 350
转载 静态作用域与动态作用域的区别(转)
在计算机程序设计中,变量是名字(name)与实体(entity)的绑定(binding)。一段程序代码中所用到的名字并不总是有效(或者说:可用的),而限定这个变量名字具有可用性的代码范围就是这个名字的作用域。不同的程序设计语言可能有不同的作用域和名字解析设计。同一语言内也可能存在多种作用域,随实体的类型变化而不同。作用域类别影响变量的绑定方式,根据语言使用静态作用域(词法作用域)还是动态作用域变量...
2018-08-24 11:20:06 4362
原创 Python利用描述符进行属性访问控制,完成属性数据类型强制定义(如C语言)、属性读写及删除操作
# coding=utf-8#用描述符对属性进行访问控制class TypedProperty(object): def __init__(self,name,type_,default=None): #描述符实例属性中保存“_特性变量名(name/num...)”、类型、默认值 self.name="_"+name self.type=type_...
2018-08-20 00:52:53 741
转载 Python描述符 (descriptor) 详解
Python描述符 (descriptor) 详解1、什么是描述符? python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问。这些方法有 __get__(), __set__(), 和__delete__()。如果这些方法中的任何一个被定义在一个对象中,这个对象就是一个描述符。 以上为官方定义,纯粹为了装逼使用,一般人看这些定义都有一种问候祖...
2018-08-19 13:53:51 362 1
原创 Python 使用特性对属性进行访问
在写python类的时候,虽然可以通过“实例名.变量名”的方式对实例中的变量进行读取和赋值。但出于规范性等等原因,我们最好还是写getter和setter,不过这样的话在读取变量和赋值时代码就显得有些臃肿,也不那么随心所欲了。那么有没有即保证数据规范性又直接简单访问数据的方式呢?有,使用property() 函数和@property修饰符。# coding=utf-8class Foo(...
2018-08-19 11:16:12 442
原创 Python多重继承时属性的调用顺序
使用多重继承时,属性的解析会变得非常复杂,因为可以使用很多搜索路径来绑定属性。在查找使用了多重继承的属性时,会将所有基类按从“最特殊”的类型到“最不特殊”的类这种顺序进行排列。然后在搜索属性时,就会按这个顺序搜索,直至找到该属性的第一个定义。可通过类的__mro__属性查看其基类的顺序。# coding=utf-8#多重继承的属性查找顺序,由最特殊的类到最不特殊的类,由子类到基类,由左边基...
2018-08-18 16:41:43 1045
原创 Python 对象的初始化函数及调用函数
# coding=utf-8class DistanceFrom(object): def __init__(self,origin): self.origin=origin def __call__(self,x): return abs(x-self.origin) nums=[1,7,6,4,3] k1=DistanceF...
2018-08-17 23:53:57 7111
原创 Python 生成器
# coding=utf-8#生成器是一个函数,用yield可返回一系列值,而普通函数用return只能返回一个值def Countdown(n): print('Ready,Go!') while n>0: yield n n-=1 MyGenerator=Countdown(9) #创建generator对象MyGener...
2018-08-14 17:18:22 229
原创 Python装饰器
# coding=utf-8#装饰器是一个函数,其主要用途是包装另一个函数或类,修改或增强被包装对象的行为,def dec1(func): # print("1111") def one(): print("2222") func() print("3333") return one def ...
2018-08-12 21:53:48 132
原创 Python赋值与深浅拷贝
# coding=utf-8#Python 赋值 与深浅拷贝#Python 赋值时会创建一个新的引用,对不可变对象,实际上象创建一个副本,但对可变对象,因为是引用,当对其中一个对象的元素进行操作时,会影响另一个对象,#要消除其影响可用拷贝,其中浅拷贝只拷贝一层,深拷贝拷贝所有层a=1 #初始化ab=a #b引用aprint(id(a),id(b)) #地址相同b=1print(id...
2018-08-12 17:50:55 134
《Neural Network and Deep Learning》学习笔记1-深入理解神经网络与BP算法
2018-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人