__call__()方法调用对象
def __call__(self,形参)
__call__()方法调用对象
def __call__(self,形参)
析构函数__del__(self)
用垃圾回收机制销毁0引用对象,一般不需重写
class person:
def __del__(self):
print("obj deleted")
类方法,只操作类属性,不涉及实例属性
@classmethod
def xxx(cls): xxx函数名
类名.xxx()
静态方法,应用于类内,可以强行调用类属性
@staticmethod
def 静态方法名(形参列表)
不能调用实例属性,方法
实例方法:
def xxx(self,形参1) xxx为函数名称
解释器调用为
class名.实例方法名(变量名)
Studnet.sayscore(S2)
isinstance(变量,class)判断变量是否是指定的class
转义字符
转义字符的使用:
字符串的拼接:
1.使用加号——'aa' + 'bb';
(1)+两边都是字符串,则是字符串的拼接;
(2)+两边都是数字,则是加法运算;
(3)+两边的类型不同,则会出现异常
2.可以讲多个字符串直接放在一起拼接
字符串的复制:直接用*实现复制
不换行打印:在调用print时,会自动打印一个换行符,如果我们不想换行,则可以通过添加end = “任意字符串”
从控制台读取字符串:
可以通过input() 从控制台读取键盘输入的内容
字符串:
1.字符串基本特点:
(1)程序员打交道最多的是“字符串”,而不是数字,编程中的逻辑思维重要性远远超过数学能力;
(2)字符串的本质是:字符序列;python的字符串是不可变的,我们无法对原字符串做任何修改;
2.字符串的编码:
python3直接支持Unicode编码,Unicode16位可以表示世界上任何书面语言的字符
3.引号创建字符串:通过单引号或双引号创建;字符串里本身有单引号的,外面用双引号,字符串本身有双引号的,外面用单引号;连续三个单引号或三个双引号,可以帮助我们创建多行字符串
4.空字符串:python里面允许空字符串的存在,
同一运算符:
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
is 与==的区别:
is判断的是两个变量引用对象是否为同一个,即比较对象的地址;
==用于判断引用对象的阿值是否相等
整数缓存的问题:
python会将[-5,256]范围内的整数缓存起来,则在这个范围内数,a = 5 ,b = 5. a is b 为真,默认这两个数的地址相同。而在pycharm里面的范围是[-5,任意正整数]
布尔值:
True =1
False = 0
比较运算符:
1.等于 ==
2.不等于!=
3.大于 >
4.小于 <
5.大于等于 >=
6.小于等于 <=
逻辑运算符:
or: x or y,x为ture,则不计算y,发生短路
and: x and y,x为真,则返回y的值;若x为false,不计算y,直接返回x的值
not: not x,取非
import turtle import math #定义多个点的坐标 x1, y1 = 100, 100 x2, y2 = 100, -100 x3, y3 = -100, -100 x4, y4 = -100, 100 #绘制折线 turtle.penup() turtle.goto(x1, y1) turtle.pendown() turtle.goto(x2, y2) turtle.goto(x3, y3) turtle.goto(x4, y4) #计算起始点和终点的距离 distance = math.sqrt((x1 - x4) ** 2 +(y1 - y4)**2) turtle.write(distance)
时间的表示:
在计算机中时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒进行计算的。1970年这个 时刻称为“unix时间点”
python可以通过time.time()获得当前时刻,返回值以秒为单位;
程序基本结构:
浮点数:称为float,浮点数用科学计数法表示,比如:3.14,可以表示为314E-2或者314e-2。这些数字在内存中也是按照科学计数法存储;float(3)可以把整数型转换为浮点型;float(“3.14”}可以把字符串转化为小数;
整数和浮点数混合运算时,表达式结果自动转型为浮点数;
round()可以返回四舍五入的值。注:不改变原有的值,产生的是新的值;
增强型赋值运算符:
a = a + 1 等价于 a += 1
注:+和=之间不需要加空格
类:产生对象的模具(也是对象),包含方法(函数)和属性(值)
def __init__ (self,参数1,参数2) 双下划线定义属性值
class Xxx:
对象:数据+处理方法(函数)
变量查找顺序
local内置函数-enclosed外部函数-global模块内-built in python
nonlocal_变量
在内部函数修改外部函数里变量
def outer():
b= 10
def inner():
nonlocal b
b=2
inner() 内部函数被激活
print(b) 新的b只能在outer()里使用
字符串驻留:
描述:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。
Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线、字母和数字)会启用字符串驻留机制
lambda生成简单匿名函数
f=lambda a,b,c: a+b+c
f(2,3,4)
对象浅copy之后修改会影响原对象
对象深copy之后修改,对原copy对象不造成影响
函数操作不可变全局变量,传递全局变量对象地址给栈帧的局部变量,之后改变局部变量会创建新的对象,局部变量对应对象地址变化