7天玩转Python(六)面向对象编程

        面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术 [1]  发展到一定阶段后的产物。

类和对象

类是一些对象的抽象,隐藏了对象内部复杂的结构和实现。类由变量和函数两部分构成,类中的变量称为成员变量,类中的函数称为成员函数。

类和对象的区别:

类是对客观世界中事物的抽象,对象是类实例化后的实体。

类的定义

python中使用class关键字定义一个类,类名的首字符一般要大写。类把需要使用的变量和方法组合在一起,这种方式称为封装。

类继承自Object

# 类的创建
class Fruit:
    def __init__(self):
        self.name = name

    def grow(self):
        print("class fruit")

对象的创建

创建对象的过程称为实例化

# 类的创建
class Fruit:
    def grow(self):
        print("class fruit")


fruit = Fruit()       # 对象的创建
fruit.grow()          # 对象调用类方法

属性和方法

类是由属性和方法组成。类的属性是对数据的封装,类的方法则表示对象具有的行为。

类的属性:

         类的属性一般分为私有和公有。Python中并没有这一类的关键字。默认情况下所有的属性都是“公有的”。如果属性前面以两个下划线开始则表示是私有的。

python中的属性分为实例属性和静态属性。实例属性是以self作为前缀的属性。python中静态变量称为类变量。

class Fruit:
    prince = 0     #类属性

    def __init__(self):
        self.name = "red"     #实例属性
        zone = "China"        #局部变量

python中的类和对象都可以访问类属性。

私有属性的访问:instance._classname__attribute

class Fruit:

    def __init__(self):
        self.__name = "red"     #私有属性

fruit = Fruit()       # 对象的创建
print(fruit._Fruit__name)    #访问私有属性

类的方法

类的方法分为公有方法和私有方法

python使用函数staticmethod()或@staticmethod修饰器把普通的函数转化为静态的函数,Python中静态函数用类名作为前缀调用。

class Fruit:
    price = 0             # 类变量

    def __init__(self):
        self.__color = "red"

    def getColor(self):
        print(self.__color)

    @ staticmethod
    def getPrice():
        print(Fruit.price)

    def __getPrice():
        Fruit.price = Fruit.price + 10
        print(Fruit.price)

    count = staticmethod(__getPrice)


apple = Fruit()
apple.getColor()
Fruit.count()
Fruit.count()
Fruit.getPrice()

Python中还有一种方法称为类方法。类方法使用函数classmethod()或@classmethod

内部类的使用

用外部类调用内部类,生成内部类的实例,再调用内部类的方法。

class Car:
    class Door:
        def open(self):
            print("open door")


innerClass = Car.Door()
innerClass.open()

内部类容易造成程序结构的复杂,不提倡使用

__init__()方法

构造函数用于初始化类的内部状态,为类的属性设置默认值。

class Color:
    def __init__(self, color):
        self.__color = color


    def getColor(self):
        print(self.__color)

    def setColor(self, color):
        self.__color = color

c = Color("yellow")
c.getColor()
c.setColor("blue")
c.getColor()

__del__方法

析构函数用于释放对象占用的资源。python提供了析构函数__del__()

垃圾回收机制

        python采用垃圾回收机制处理对象。python提供gc模块释放不再使用的对象。python采用引数计数的方法。当某个对象在其引用域内引用计数为0时,Python就会自动清除对象。

类的内置方法

__init__()和__del__()都是类的内置方法。

继承

继承是面向对象的重要特性之一。原始的类称为父类或超类,新类称为子类或派生类。继承实现代码的重用。

# 继承
class A:
    pass
class B(A):
    pass

super()

多态性

python支持多继承

# 继承
class A:
    pass
class B:
    pass
class C(A,B):
    pass

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤凰AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值