数据描述符(class 内置 get/set/del方法 ): # 什么是描述符 # 官方的定义:描述符是一种具有“捆绑行为”的对象属性.访问(获取.设置和删除)它的属性时,实际是调用特殊的方法(_get_(), # _set_(),_delete_()).也就是说,如果一个对象定义了这三种方法的任何一种,它就是一个描述符. # 更多的理解: # 通常情况下,访问一个对象的搜索链是怎样的?比如a.x,首先,应该是查询 a._dict_[‘x’],然后是type(a)._dict_[‘x’],一直…
二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher:             #创建一个老师类     __isinstance = None     #创建一个私有静态变量, 准备用来指向一个裸着的对象     def __new__(cls, *args, **kwargs): #创建一个裸着的对象         if not cls.__is…
Python的描述符是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过google和阅读源码,现将自己的理解和心得记录下来,也为正在为了该问题苦恼的朋友提供一个思考问题的参考,由于个人能力有限,文中如有笔误.逻辑错误甚至概念性错误,还请提出并指正. 2.什么是描述符 Python 2.2 引进了 Python 描述符,同时还引进了一些新的样式类,但是它们并没有得到广泛使用.Python 描述符是一种创建托管属性的方法.描述符具有诸多优点,诸如:保护属…
https://www.cnblogs.com/Jimmy1988/p/6808237.html https://segmentfault.com/a/1190000006660339 https://blog.csdn.net/u013679490/article/details/54767152 1.getattribute() 无条件调用 2.数据描述符(定义了__get__\__set__方法的类的实例) --由1的getattribute()调用[注,会将数据描述符转换成:当前类名._…
一,内置函数 #内置的模块#拿过来直接就用的:内置的函数 #!/usr/bin/env python #_*_coding:utf-8_*_ #内置的模块 #拿过来直接就用的:内置的函数 #作用域相关(2)(了解) #1.globals()==获取全局变量的字典 #2.locals()==获取执行方法所在命名空间内的局部变量的字典 #str类型代码执行相关(3) #1.eval()==将字符串类型的代码执行并返回结果==(掌握) #print(eval('1+2+3+4')) #print(ev…
Python存取属性的方式特别不对等,通过实例读取属性时,通常返回的是实例中定义的属性,但如果实例未曾定义过该属性,就会获取类属性,而为实例的属性赋值时,通常会在实例中创建属性,而不会影响到类本身.这种不对等的方式对描述符类也有影响. def cls_name(obj_or_cls): # 传入一个实例,返回类名 cls = type(obj_or_cls) if cls is type: cls = obj_or_cls return cls.__name__.split('.')[-1] d…
使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如下几种: 一.内置语句 我们知道的最常见的就是赋值语句,通过运算符 =  将表达式赋值给某个变量. 除了赋值语句外,python还提供了一些内置的语句,如: print语句,用于在控制台输出 del语句,用于删除变量 pass 语句,空语句,什么都不干 二.内置函数 python也提供了许多内置函数…
一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, 66] def binary_search(dataset, find_num): print(dataset) if len(dataset) > 1: mid = int(len(dataset) / 2) if dataset[mid] == find_num: # find it print…
1.描述符的定义 描述符是与特定属性互相绑定的一种协议,通过方法被触发修改属性,这些方法包括__get__(),__set__(),__delete__().将这些方法定义在类中,即可实现描述符 2.属性与__dict__ Python中类有属于自己的字典属性,经过类的实例化的对象也同样有自己的字典属性,__dict__ class Foo(object): x=10 def f(self): print('f') def __init__(self,name,id): self.name=na…
函数.全局变量 写代码时注意的几点事项: 1.一般写代码的时候尽量少用或不用全局变量,首先全局变量不安全,大家协作的情况下,代码公用容易被篡改,其次全局变量会一直占用系统内容. 2.函数里如果有多个return值,会把几个return值放到一个元组里 def hello(a,b,c,d): return a,b,c,dres=hello('1111','2222','3333','4444')print(res) 3.一个函数尽量只写一个功能 4.用简练的代码写高级的程序 例如:循环一个list…