Python面向对象学习笔记
建议大学学习代码的过程中,自己一步步敲一下代码,用代码验证所学的或者所说的,这样学习效果会比较好,同时遇到不会的,就去搜索查询,结合chatgpt更好的编程。
python创建包
demo1.py
当需要从pypackage中导入包的时候,把demo1.py拖入pypackage中即可,其中demo1.py中的内容如下:
#面向对象(OOP)
#封装,继承,多态class Animal:#定义一个动物抽象父类classtype=99 #类属性,为所有子类共享@staticmethoddef add(x,y):return x+ydef __init__(self,name,__age):#定义动物的属性,一般通过init进行初始化self.name=nameself.__age=__age#__表示的是私有属性,年龄是私有属性,无法直接访问,但是可以通过共有set和get方法进行访问def get(self):return self.__agedef set(self,age):self.__age = agereturn agedef action(self):#定义一个动作passclass Dog(Animal):#定义一个狗类继承动物父类# def __init__(self,name,age):#默认继承了动物类父类的属性# self.name=name# self.age=age# def __init__(self,high):#狗类覆写了动物父类的属性# self.high=highdef move(self):print("狗类覆写了动物类父类!")def action(self):print("狗类覆写了动物类父类!")
class Mouse(Animal):def action(self):print("鼠类的叫声与狗类以及动物类父类的叫声不同,形成了多态!")def get(self):super().get() #子类定义一个get方法调用父类的方法,继承if __name__=="__main__":#当前运行的模块名为主函数名时执行,被调用的时候,主函数是被调用函数,这个是模块名mouse=Mouse(90,100)#实列化对象,将self绑定到了mouse实列化对象上dog=Dog(10,100)dog.set(1000)print(dog.get())print(mouse.get())# print(mouse.classtype)# print(dog.action())# print(mouse.action())# print(Dog.add(10,10))
demo2.py
# from demo1 import Dog#从demo1.py模块中导入Dog类
# from demo1 import Dog as F从demo1.py模块中导入Dog类,并取别名叫做F类# from pypackage.demo1 import Dog as F #从多个模块的包,名称叫做pypackage中导入demo1模块,并取别名为F
from demo1 import *#从demo1模块中导入所有的模块dog=Dog(1000)
print(dog.high)