python知识;
1、该函数的作用;
- 当把它当作程序入口运行时,__name__ == __main__它会执行下面的函数print(“dddd”)。
- 当引用具体的包名时,__name__ == 具体引用的包名,下面的函数也不会执行。
if __name__ == "__main__":
print("dddd")
2、python的类和对象;
- 类(class):简单来说就是某一类事物,它们具有相同的属性,例如小狗有不同的种类,不同的种类就属于属性(变量)。
- 对象(object):不同种类的小狗就都是对象,这个对象就是类的实例(instance)。对象/实例只有一种作用,即属性引用。对象内存空间里只存储对象的属性,而不存储方法和静态属性,方法和静态属性存储在类的内存空间中,这样多个对象可以共享类中的资源,便于节省内存。
- 实例化:类到对象的过程(实例 = 类名(参数1,参数2))。
- 字段(field):对象可以使用属于它的普通变量来存储数据,这种从属于对象或者类的变量叫做字段。它们属于某一类的各个实例或对象,或是从属于某一类本身。它们被分别称作实例变量(Instance Variables)与类变量(Class Variables)。有的地方称他们为静态属性和动态属性,静态属性针对的是类属性,动态属性针对的是定义在类中的方法。
- 方法(method):对象可以通过类的函数来实现相关功能,这个函数叫做类的方法。方法分为普通方法,类方法和静态方法。三种方法在内存中都属于类,区别在于调用方式不同,
3、面向对象的三大特性:继承,多态,封装
- a;继承:python中,一个新建的类可以继承一个或多个父类。
作用;1.减少代码的重用;2.提高代码的可读性;3.规范编程模式。
- b;多态(指的是一类事物有多种形态。但python是自带多态效果的,且崇尚鸭子类型)。
鸭子类型:不是通过具体的继承关系来约束某些类必须必须要有哪些方法名,是通过一种约定俗成的概念来保证多个类中相似的功能叫相同的名字
- c; 封装:顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容
封装原则:1.将不需要对外提供的内容都隐藏起来;2.把属性都隐藏,提供公共方法对其访问。
封装的好处:1.提高代码的复用性;2.提高安全性;3.降低代码的冗余度
4、python闭包;定义函数与外部环境变量构成闭包
闭包 = 函数+环境变量(函数定义时候)
注意:环境变量一定要在定义函数的外部,而且不能是全局变量
闭包=函数+自由变量的引用。
那么什么是自由变量(free variables)?
在一个函数中,如果某个变量既不是在函数内部创建的也不属于函数的形参,