Python面向对象编程:类与对象详解

5星 · 超过95%的资源 1 下载量 67 浏览量 更新于2024-08-31 收藏 74KB PDF 举报
小明" In[7]:XiaoMing(ming) TypeError: XiaoMing() takes no arguments (1 given) 这里出现了一个错误,因为我们在定义XiaoMing类时,并没有定义任何参数,所以在实例化时直接传入参数会报错。正确的实例化方式应该是不传入任何参数,直接使用类名加括号: In[8]:xiaoming = XiaoMing() In[9]:xiaoming.run() Out[9]: '小明在跑步' In[10]:xiaoming.sleep() Out[10]: '小明在睡觉' 实例化后的xiaoming对象拥有类XiaoMing中的属性和方法,可以通过xiaoming.height和xiaoming.weight来访问属性,通过xiaoming.run()和xiaoming.sleep()来调用方法。 继承 在面向对象编程中,继承是另一个重要的概念。继承允许我们创建一个新类(子类),它继承自另一个类(父类或基类)。子类将获得父类的所有属性和方法,同时可以添加自己的属性和方法。这样可以实现代码复用,提高程序的可维护性。 例如,我们想要创建一个新的类Student,它继承自XiaoMing类,并添加新的属性如年级和专业: ```python class Student(XiaoMing): # 新的属性 grade = None major = None # 新的方法 def study(self): print(f'小明在学习{self.major}专业') ``` 现在,Student类不仅有XiaoMing类的属性和方法,还有grade和major这两个新的属性以及study()方法: In[11]: student = Student() In[12]: student.grade = 3 In[13]: student.major = '计算机科学' In[14]: student.run() Out[14]: '小明在跑步' In[15]: student.study() Out[15]: '小明在学习计算机科学专业' ``` 多态 多态是指不同的类可以共享相同的方法,即使这些类的方法实现可能不同。在Python中,多态主要体现在方法覆盖和鸭子类型上。方法覆盖是指子类可以重写父类的方法,提供不同的实现。鸭子类型则是“如果它走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子”的理念,即关注对象的行为而不是其具体类型。 总结 Python的类和对象是其面向对象编程的核心。通过封装,我们可以隐藏数据细节,提供更安全、更易用的接口;继承使得我们能构建层次化的类结构,实现代码复用;多态则增强了程序的灵活性,让设计更具扩展性。理解并熟练运用这些特性,能帮助我们编写出更加高效、易于维护的Python代码。