python笔记
1,
if name == "main":
如果是把它当作一个入口文件来执行,它才会执行if下的语句
如果是当作一个包来引用时,if下的语句就会失效
为什么会失效:因为name不再是main


2,
类和对象(类是一个模板,对象是模板的实例化)
这个名称的调用用类和对象都可以引用


3,
构造函数init(self)
作用:想让类定义不同的对象
这里的self代表的是对象,

想找一个变量的内存地址就用id

构造函数不能显示调用,但显示成功了,但编程中一定不要这样做

构造函数为什么会返回一个none值?
为什么传了值,它还是显示的类变量?

self就是保存对象属性用的
dict


类实例化后可以动态添加属性和修改属性

如果想在对象中调用类变量,下面2个都可以调用出来,但第一个更规范

因为sum是python中的函数,所以打印不出来

构造方法直接在类的实例化时就可以调用

类方法和静态方法:
类方法的作用就是操作变量,(cls)可以更改
类方法关联类本身,实例方法关联对象
操作类变量最好是定义一个类方法

公开和私有
公开的即可在内部访问也可在外部访问

为什么使用了私有变量,外部依旧是可以访问?

其实是没有访问到,是自己新创建了一个属性而已

总之,没有什么是不可以访问的
继承:
继承允许我们定义继承另一个类所有方法和属性的类
父类是继承类
子类是从另一个类继承的类
任何类都可以是父类
创建子类要创建从其他类继承功能的类,还要将父类作为参数发送
子类完全继承父类就没有什么意义了
super()函数,它会使子类从其父类继承所有的方法和属性
闭包:
定义函数与外部环境变量构成闭包
闭包= 函数+环境变量
环境变量一定要在定义函数的外部,而且不能是全局变量
闭包= 函数+自由变量的引用
在一个函数中,如果某个变量既不是在函数内部创建也不属于函数的形参




如果用if else 语句时,不能放到后面


用for循环可以将它直接运行到底



迭代器是一种对象,该对象包含值的可计数数字
迭代器是可迭代的对象,可以遍历所有的值
列表,元组,字典,集合都是可迭代的对象,它们是可迭代的容器,可以从中获取迭代器


匿名函数









浙公网安备 33010602011771号