python程序设计基础第六章笔记:面向对象程序设计

本文是关于Python程序设计基础的第六章笔记,重点讲解面向对象编程。内容包括类的定义与使用,数据成员与方法成员的分类,继承与多态的概念,以及如何通过特殊方法实现运算符重载。详细阐述了成员的访问权限,如私有成员和公有成员,以及实例方法、类方法、静态方法和抽象方法的使用。同时,讨论了Python类的动态性和混入机制,以及继承时如何调用父类的方法。
摘要由CSDN通过智能技术生成

Python程序设计基础笔记



第六章:面向对象程序设计

6.1 类的定义与使用

语法格式:
class 类名[(父类)]:
----内同

实例化对象:
对象名 = 类名([参数])

可以使用 type 查看一个对象实例化对象的类型,或者用 isinstance(实例名,类名) 来查看是否属于此类。
可以在定义类的时候使用注释,写在三引号中,在外部可以使用 类名.–doc-- 显示。
使用 dir(类名或实例名) 来查看此实例或者此类中包含的成员。

6.2 数据成员与方法成员

成员:

按私密性,分为 私有成员(命名时一般前面加两个下划线) 和 公有成员。
按成分 ,分为 数据成员 和 方法成员:
对于数据成员,分为 属于对象的数据成员 和 属于类的数据成员
对于方法成员,分为 实例方法 类方法 静态方法 和 抽象方法

私有的属于对象的数据成员:不可以在外部访问,可以在内部调用。
公有的属于对象的数据成员:可以通过实例在外部访问,可以在内部调用。
私有的属于类的数据成员;不可以在外部访问,可以在内部调用。
公有的属于类的数据成员:可以通过实例和类在外部访问,可以在内部调用。
属于类的数据成员的内部调用格式:
实例方法、静态方法:类名.数据成员
类方法:cls.数据成员

私有的实例方法:称为私有方法,不可以通过实例在外部访问,可以通过实例方法在内部调用。
公有的实例方法:称为公有方法,可以通过实例在外部访问,也可以通过实例方法在内部调用。

类方法:可以通过类和实例调用,不可以调用实例成员。
静态方法:可以通过类和实例调用,不可以调用实例成员。
抽象方法: 是特殊的实例方法,一般在抽象类中定义,并且要求在派生类中重新实现。

成员特殊命名格式:

  • -xxx:以一个下划线开头,只有类对象和子类对象才可以访问这些成员,在类的外部一般不建议访问。在模块中此种成员不能用 from moudle import * 调用,除非在模块中使用 --all-- 变量明确指明。
  • –xxx–:系统定义的特殊成员。
  • –xxx:私有成员,只有类对象自己可以访问,在外部可以通过 对象名.-类名–xxx 这样的方式访问,但不建议这样做。

类的实现

class Person:
    
    __people = 0     #私有类数据成员
    men = 0		     #公有类数据成员
    
    def __init__(self,name,age,sex = 'male'):   #构造方法,每当有新实例,此方法执行
        self.name = name
        self.__age = age
        self.sex = sex
        Person.__people += 1           
        if self.sex == 'male':
            Person.men += 1
            
    def showAdress(self,adress):          #公有方法
        self.__adress = adress			  #在公有方法中创建私有实例数据成员
        print(self.name + ' is ' + str(self.__age) + 
              ' years old , living in '+ self.__adress,end = ' , ')  
        return self.__hobby				  #在公有方法中调用私有成员方法
        
    def __hobby(self,hobby):              #定义私有方法
        self.hobby = hobby
        print('into '+hobby)
        
    @classmethod						  #类方法,第一个参数是 cls ,代表 Person 类
    def showPeople(cls):
        print(str(cls.__people) + ' people in total')
        
    @staticmethod						  #静态方法,可以不需要参数,注意其与类方法在调用类成员的区别
    def showWomen():
        print(str(Person.__people - Person.men) + ' women in total')
        
zs = Person('zhangsan',23)				  #实例化对象,使用了默认参数
ls = Person('lisi',
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值