Python之面向对象

本文详细介绍了Python的面向对象编程,包括面向对象的概念、面向过程与面向对象的区别、类与对象的关系、面向对象的基础语法以及内置方法如初始化、__del__和__str__等。通过实例解析了如何在Python中定义和使用类与对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、面向对象的概念

面向对象oop(onject oriented programming),与之对应的还有面向过程,像C语言就是面向过程的

理解过程和函数?
过程:是早期的一个编程概念,过程类似于函数,只能执行,但是没有返回值
函数:不仅能执行,还可以返回结果(return)

二、深刻理解什么时面向对象和面向过程

1、面向过程:—-侧重于怎么做?

  • 把完成某个需求的所有步骤从头到尾逐步实现
  • 根据开发要求,将某些功能独立的代码封装成一个又一个函数
  • 最后完成的代码,就会死顺序的调用不同的函数

特点:

  • 注重步骤与过程,不注重职责分工
  • 如果需求复杂,代码会变得很复杂
  • 开发复杂项目,没有固定的套路,开发难度很大

2、面向对象:—侧重于谁来做?
相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法

  • 在完成某个需求之前,首先确定职责—要做的事情(方法)
  • 根据职责确定不同的对象,在对象内部封装不同的方法(或是多个方法)
  • 最后完成代码,就是顺序的让不同对象调用不同的方法

特点:

  • 注重对象和职责,不同的对象承担不同的职责
  • 更加适合复杂的需求变化,是专门应对复杂项目的开发提供的固定套路
  • 需要在面向过程的基础上,再学习一些面向对象的语法

面向对象编程有:Python 、JAVA 、C++

三、类与对象

:是对一群具有相同特征或行为的事物的一个统称,不能直接使用(比如:飞机制造图纸不能飞上天)
特征:属性
行为:方法
对象:由类创建出来的一个具体的存在,可以直接使用(用图纸制造出来的飞机可以飞上天)

在程序开发中:应该先有类 再有对象

类的设计
1.类名 这类事物的名字,满足大驼峰命名法
大驼峰命名法
——–>每一个单词的首字母大写
——–>单词与单词只见没有下划线
2.属性 这个类创建出的对象有什么样的特征
3.方法 这个类创建出的对象有什么样的行为

四、面向对象的基础语法

定义简单的类:
定义只包含方法的类:

class 类名:
    def 方法1(self,参数列表):
        pass
    def 方法2(self,参数列表):
        pass

当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:
对象变量 = 类名()
需求:小猫爱吃鱼,小猫要喝水

class Cat():
    def eat(self):
        print '小猫爱吃鱼'

    def drink(self):
        print '小猫要喝水'


tom = Cat()
tom.eat()
tom.drink()

这里写图片描述

不同打印格式:

class Cat():
    def eat(self):
        print 'The cat likes to eat fish!'

    def drink(self):
        print 'The cat likes to drink'


tom = Cat()
tom.eat()
tom.drink()
print tom
addr = id(tom)
# %x打印格式为十六进制
print '%x' % addr
# %d打印格式为十进制
print '%d' % addr

这里写图片描述

哪一个对象调用的方法,self就是哪一个对象的引用

class Cat():
    # 哪一个对象调用的方法,self就是哪个对象的引用
    def eat(self):
        print '%s likes to eat fish!' % self.name

    def drink(self):
        print 'The cat likes to drink'

tom = Cat()
tom.name = 'tom'
tom.eat()
tom.drink()
print tom

# 再创建一个对象
lazy_cat = Cat()
lazy_cat.name = 'lazy_cat'
lazy_cat.eat()
lazy_cat.drink()
print lazy_cat

这里写图片描述

五、内置方法

1. 初始化方法__init__
【1】基础概念
我们现在已经知道了使用 类名() 就可以创建一个对象
当使用类名()创建对象时,python的解释器会自动执行以下操作:
1.为对象在内存中分配空间–创建对象
2.调用初始化方法为对象的属性设置初始值–初始化方法(__init__)
这个初始化方法就是__init__方法,__init__是对象的内置方法
__init__方法是专门用来定义一个类具有哪些属性的方法
【2】使用 类名() 创建对象的时候,会自动调用初始化方法__init__

class Cat():
    def __init__(self,new_name):

        # self.属性名 = 属性的初始值
        self.name = new_name
        # 在类中任何方法都可以使用self.name
    def eat(self):
        print '%s likes fish' % self.name

tom = Cat('tom')
print tom.name
tom.eat()

lazy_cat = Cat('lazy_cat')
print lazy_cat.name
lazy_cat.eat()

这里写图片描述
注:不推荐在类的外部给对象增加属性。如果在运行时,没有找到属性,程序会报错


2.__del__方法
【1】基础概念
在python中,当使用类名()创建对象时,为对象分配完空间后,自动调用__init__方法
当一个对象被从内存中销毁后,会自动调用__del__方法
【2】示例

class Cat():
    def __init__(self,new_name):
        self.name = new_name
        print '%s is come ' % self.name
    def __del__(self):
        print '%s is gone' % self.name


tom = Cat('tom')
print tom.name
print '-' * 50

这里写图片描述


3.__str__方法
【1】基础概念
在python中,使用python输出对象变量,
默认情况下,会输出这个变量引用的对象是由哪一个类创建的对象,
以及在内存中的地址(十六进制表示)
如果在开发中,希望使用print输出对象变量时,
能够打印自定义的内容,就可以利用str这个内置方法了
【2】示例

class Cat():
    def __init__(self, new_name):
        self.name = new_name

    def __str__(self):
        # 必须返回一个字符串
        return 'I am %s' % self.name


tom = Cat('tom')
print tom

这里写图片描述

当注释掉__str__方法后,则返回类名和内存地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值