python初始化器在__init__模块中,你可以做任何你想做的事情,但是它最常用于初始化一些包或者设置特殊的__all__变量。后者控制*(通配符)导入-从包导入*。
我们可以在__init__模块中做很多事情,甚至是奇怪的事情。假设我们没有。;我不喜欢显式导入,并希望将所有模块符号提升到包级别,所以我们不不需要记住实际的模块名。
在oop(面向对象编程)中,依赖于对象类型的行为被称为多态性。
唐不要废话,直接编码:
注意:introduction()函数是针对app类型编程的,不是针对头条、、淘宝,因为我们写introduction()函数的时候,没有我不知道有多少特定的应用程序,而且它不可能遍历所有的应用类型(每天都有新的应用被开发出来)。但不管你以后扩展多少app具体类,只要它遵守协议(也就是实现了hello成员函数),我们的introduction()就能正确运行。这就是多态,让我们编程的是父类型而不是具体的子类型,使得代码可以重用,大大提高了开发效率。
因为python是一种动态类型化的语言,所以你看上面的代码可能觉得理所当然,其实背后有更深层次的东西。一旦用静态类型语言(比如java)实现了上面的代码,就必须提前定义引入函数的参数类型比。你有两个选择,要么是app的父类,要么是特定类型的app:如果是后者,你的代码扩展性会很差,会写更多的代码;而如果是前者,恭喜你,你发挥了多态性的力量。
因为pytyon是一个动态类型,所以多态在python中随处可见。例如,运营商"*"(本质上也是一个函数)对于int、string、list类型都能正确执行(见上图demo2)。
以上为个人观点,欢迎批评指正,共同交流。喜欢的可以跟着我,谢谢!
赞同以上观点的,请喜欢后再去。感谢您的支持!
一般来说,当你看到多态性时,你就知道它是一个面向对象的特性。python作为面向对象的语言,也有这个特点。
多态,通俗的说就是父类的一种方法,子类可以使用。在这个方法的基础上,子类还有其他方法,相当于发扬光大,多而不同。
我不我不知道这会不会让你更清楚。希望对你有帮助。
python是一种面向对象的语言,具有面向对象的特点。多态性是其中之一。python多态性实现了同一个类的不同实现,符合面向对象编程的原则。
定义和执行可以不同。