python面向对象

本文详细介绍了Python面向对象编程的三大特性:封装、继承和多态。封装中讲解了属性和方法的组合以及私有成员的访问。在继承部分,讨论了简单继承、私有成员的访问策略、方法重写、多继承以及菱形继承问题及其解决方案。多态作为面向对象的重要概念,也在文中进行了阐述。
摘要由CSDN通过智能技术生成

面向对象三大特性

一、简介

1、封装
封装就是隐藏对象的属性和实现细节,仅对外公开接口(公有的方法),控制在程序中的属性的读和修改的访问级别,将数据和行为进行有机的结合,形成一个整体。这个整体就是“类”,其中数据和方法都是类中的成员。
2、继承
继承:子类直接使用父类定义好的属性和方法,从而实现代码的复用。code reuse
3、多态
向不同的对象发送同一条信息,不同的对象在接受到信息后,会做出不同的反应.

二、封装

  • 将属性和方法进行有机结合,形成一个整体
  • 将不想暴露给外界的成员私有化,外界只能通过公有的接口访问
class Person:
    def __init__(self, name, age):
        self.__name = name
        self.__age = age

    def get_age(self):
        return self.__age

    def set_age(self,age):
        # 在公有的接口中可以对数据加以处理
        if age < 0 or age > 150:
            print("年龄不合法")
        else:
            self.__age = age

    def __str__(self):
        return f"姓名:{self.__name},年龄:{self.__age}"


p = Person('Tom',18)
print(p)  # 直接打印对象 获取到的是地址

# p.age = 20  # 当age为私有就不可以在外界随意修改访问
# print(p)
#
# p.age = 200
# print(p)

p.set_age(200)
print(p)
  • property函数
age = property(get_age, set_age, delete_age)

p.age = 20    # 自动调用setter  -- set_age()
print(p.age)  # 自动调用getter  -- get_age()

del p.age     # 自动调用delete  -- delete_age()
print(p.__dict__) # {'_Person__name': 'Tom', '_Person__age': 18}
del p.age
print(p.__dict__) # {'_Person__name': 'Tom'}

print(Person.__dict__)

三、继承

1. 子类直接使用父类定义好的属性和方法,从而实现代码复用.

2. 在Python中如果程序需要,可以让一个类去继承另一个类,被继承的类称为父类或者超类,也可以称为基类,继承的类称为子类或派生类.

3. 如果创建类时,没有手动去设置父类,默认继承自object类,顶层类
(在Python中,万物皆对象)

4. 继承是is-a的关系 一个学生是一个人 一个毕业生是一个学生

5. 当子类继承父类后,会拥有父类所有的属性和方法
1、简单的继承
class Person:
    def __init__(self,name,age):
        self.name = name
        self.age = age
     
     def __str__(self):
        return f"姓名:{self.name},年龄:{self.age}"

class Student(Person):
    pass 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值