前言 python有众多的魔法方法,它们会在满足某种条件下触发执行,掌握好魔法方法的使用,可以加快程序的运行效率,同时减少逻辑调用. 关键字与魔法方法 python的一些魔法方法是关键字触发的,即python解释器遇到某个关键字就会去执行相应的魔法方法. del与__del__ 如果一个对象定义了__del__魔法方法,那么解释器会调用del关键字后对象的__del__魔法方法,然后在上下文中删除该对象. class Dog(object): def __init__(self): pass d…
前言 前面已经总结了关键字.运算符与魔法方法的对应关系,下面总结python内置函数对应的魔法方法. 魔法方法 数学计算 abs(args):返回绝对值,调用__abs__; round(args):返回四舍五入的值,调用__round__; math.floor():向下取整,调用__floor__; math.ceil():向上取整,调用__ceil__; math.trunc():求一个值距离0最近的整数,调用__trunc__; divmod(a,b):返回商和余,调用__divmod_…
什么是继承 即类A可以使用类B的方法,即B是A的父类,A是B的子类,AB之间是继承关系 class Father():  # 父类 def __init__(self,name,age): self.name= name self.age= age def myself(self): print('大家好!我是%s,今年%s岁'%(self.name,self.age)) class Son(Father):      # 子类 pass 格式如此,子类的()内写上父类的类名,子类的运行的时候,…
1.python类与对象各个算术运算魔法方法总结: 2.各个魔法方法应用举例: 3.实例训练: (1)我们都知道在 Python 中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常.因此,现在我们要求定义一个 Nstr 类,支持字符串的相减操作:A – B,从 A 中去除所有 B 的子字符串. class Nstr(str): def __sub__(self,other):  self=list(self)         other=list(other) for i i…
__weak 此关键字指示编译器弱导出符号. 可以将 __weak 关键字应用于函数和变量声明以及函数定义. 用法 函数和变量声明 对于声明,此存储类指定一个 extern 对象声明,即使不存在,也不会导致链接器将未解析的引用作为错误处理. 例如: __weak void f(void); ... f(); // call f weakly 如果从编译为跳转或跳转链接指令的代码中对缺少的弱函数进行引用,则会: 将该引用解析为下一条指令的跳转.这实际上将跳转变为 NOP. 将该跳转替换为 NOP …
一.基本数据类型 基本数据类型 数据类型 内存空间(8位等于1字节) 取值范围 备注 byte 8位 -128~127   short 16位 -32768~32767   int 32位 -2147483648~2147483647   long 64位 -9223372036854775808~9223372036854775807 赋值时若超出int范围,需要在数值后加L或l float 32位 1.4E-45~3.4E38 小数默认都为double型,加F或f double 64位 4.…
一.变量命名规则 1.字母.数字.下划线组成 2.不以数字开头 3.关键字(也叫保留字),不能用作变量名 4.遵循PEP8命名规范 二.变量赋值 1.赋值符号 = 2.多重赋值 x=y=123 3.多变量赋值 x,y,z='123' 4.交换两个变量的值  可以 a,b=b,a 三.运算符 1.算数运算符 :+ - * / //整除  **(几次方) %(求余数) 2.比较运算符:> < >= <= == 3.逻辑运算符:or and not 4.成员运算符:in  not in…
集合定义 集合的交 并 差 常见的运算符的用法 字典的定义 字典的 get  items  keys  pop  popitem  update  方法 三种逻辑运算 集合 集合特性 唯一性:不存在两个相同的元素 无序性:不存在索引 可变性:set集合是可变对象 两种定义方法(具有唯一性,自动去重) 直接定义   用大括号 set()   类型转换 三种运算 s1 & s2  交集 s1 |  s2  并集 s1 - s2   差集(补集,前一个有的,后一个没有的) 集合方法 增 add(值)…
原文:http://big-elephants.com/2015-10/writing-postgres-extensions-part-ii/ 编译:Tacey Wong 在上一篇关于编写Postgres Extensions的文章中,我们介绍了扩展PostgresQL的基础知识.现在是有趣的部分来了--开发我们自己的类型. 一个小小的免责声明 最好不要急于复制和粘贴本文中的代码.文中的代码有一些严重的bug,这些bug是为了说明解释的目的而故意留下的.如果您正在寻找可用于生产的base36类…
变量: 前面我们在使用print()输出内容的时候,如果内容很长,后面要再次输出的时候,就需重新在输入一遍. 如果给输出的内容起个简单的别名.这样我们用简短的别名来代替长内容,下次要输出的时候就直接使用别名来使用原来的长内容. 这个别名就是变量.那如何使用呢? name = “hello world” name =“alex” # 这个别名就是变量. 这样就定义了一个变量. # name 是变量名 “hello world”是变量值 name,age = “alex”,12 # 两个变量交换值?…