python笔记

 

1,

if name == "main":

如果是把它当作一个入口文件来执行,它才会执行if下的语句

如果是当作一个包来引用时,if下的语句就会失效

为什么会失效:因为name不再是main,它变成了具体的包名了

 

 

 

 

2,

类和对象(类是一个模板,对象是模板的实例化)

 

这个名称的调用用类和对象都可以引用

但最好用类来调用,因为它是属于类。如果是用对象,最好是写入构造函数,如果没有构造函数,它的对象就会向上层查找,自然就查找到了类变量。

 

 

 

 

 

 

3,

构造函数init(self)

作用:想让类定义不同的对象

这里的self代表的是对象,

类实例化(用类创建新对象的过程)时,会自动调用构造函数

 

 

 

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

 

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

 

 

构造函数为什么会返回一个none值?

因为调用构造函数后,它就会变成普通的函数,普通函数是没有返回值的

 

 

为什么传了值,它还是显示的类变量?

因为这样传过去的值没有保存,所以要在构造函数中一定要写self

 

 

 

 

self就是保存对象属性用的

dict是一个字典,它里面保存了当前对象的所有变量

 

 

 

 

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

 

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

 

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

 

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

 

 

类方法和静态方法:

类方法的作用就是操作变量,(cls)可以更改

类方法关联类本身,实例方法关联对象

操作类变量最好是定义一个类方法

静态方法是在和类里面方法比较弱的时候可以使用

 

 

公开和私有

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

私有的只能在内部使用,但可以通过“对象名._类名+私有成员”进行访问

 

 

 

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

 

 

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

 

 

 

总之,没有什么是不可以访问的

 

 

 

继承:

继承允许我们定义继承另一个类所有方法和属性的类

父类是继承类

子类是从另一个类继承的类

 

任何类都可以是父类

创建子类要创建从其他类继承功能的类,还要将父类作为参数发送

子类完全继承父类就没有什么意义了

super()函数,它会使子类从其父类继承所有的方法和属性

 

 

 

 

 

闭包:

定义函数与外部环境变量构成闭包

闭包= 函数+环境变量

环境变量一定要在定义函数的外部,而且不能是全局变量

 

闭包= 函数+自由变量的引用

在一个函数中,如果某个变量既不是在函数内部创建也不属于函数的形参

并且它也不是全局变量,那么这个变量对该函数来说就是自由变量

 

 

 

 

 

 

 

 

 

 

列表生成式

 

 

 

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

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

迭代器是一种对象,该对象包含值的可计数数字

迭代器是可迭代的对象,可以遍历所有的值

 

列表,元组,字典,集合都是可迭代的对象,它们是可迭代的容器,可以从中获取迭代器

所有这些对象都有用于获取迭代器的iter()方法

 

 

 

 

 

 

 

匿名函数

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2022-07-23 15:41  {轩}  阅读(66)  评论(0)    收藏  举报