Python面向对象

面向对象和面向过程的区别:

面向过程 和 面向对象,是两种不同的编程方式 

面向过程 —— 怎么做

面向对象 —— 谁来做

面向过程:把某一需求所需的步骤从头到尾逐步实现。根据开发需求,将将某些功能独立的代码封装成函数。在执行时,按顺序地调用不同的函数。

面向对象:在完成某一个需求前,首先确定职责一一要做的事情(方法)。根据不同的职责确定不同的对象,在对象内部封装不同的方法。在执行时,按顺序地让不同的对象调用不同的方法。

类和对象

类 是抽象的,不能直接使用

类的组成:

类属性  :  例如下面的实例中的nickName和health就是类的属性

实例方法  :例如下面的实例中的show()方法就为实例方法

静态方法  

类方法

对象是由类创建出来的一个具体存在可以直接使用

类的定义:

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

创建对象:  对象变量  =  类名()  

例如:d=Dog()

对象的调用:对象名.方法名()  或者  类名.方法名(类的对象)

类的初始化方法

当使用 类名( ) 创建对象时,会自动

  • 为对象在内存中分配空间一一创建对象(__new__)
  • 为对象的属性设置初始值一一初始化方法(__init__)

这个初始化方法就是__init__方法, __init__是对象的内置方法,在类创建对象的时候,会先后调用__new__和__init__两个方法

如果在创建对象时,设置对象的属性,可以对__init__方法进行初始化的同时设置初始值

  • 在方法内部使用 self.属性 = 形参  接收外部传递的参数。例如:下面实例中的__init__()方法
  • 在创建对象时,使用类名(属性1,属性2,,)调用。例如:d=Dog('毛毛',5,'黑色')

实例:

编写宠物类Pet

要求:

类中的属性有:

nickName:表示昵称;

health:表示宠物的健康值。

类中的方法有:

构造方法__init__:用于初始化昵称和健康值;

show方法:用于输出宠物的昵称、健康值。

class Pet:     
    nickName = ''     
    health = 0     
    def __init__(self,n,h):         
        self.nickName = n         
        self.health = h     
    def show(self):        
        print("昵称:%s"%self.nickName)         
        print("健康值:%d"%self.health) 

编写犬类Dog

要求:

继承父类(宠物类),增加颜色属性color;

编写构造方法__init__,用于初始化昵称、健康值和颜色;

重写继承自父类的show方法,输出宠物的昵称、健康值和颜色;

编写feed方法:对宠物的“喂食”方法,完成一次喂食后宠物的健康值+5。

class Dog(Pet):     
    color = ''     
    def __init__(self,n,h,c):         
        Pet.__init__(self,n,h)         
        self.color = c     
    def show(self):         
        Pet.show(self)         
        print("颜色:%s"%self.color)     
    def feed(self):         
        self.health +=5 

创建Dog类的对象d

要求:

昵称为“毛毛”,初始健康值为5,颜色为“黑色”。

分别调用该对象的feed及show方法

d=Dog('毛毛',5,'黑色') 
d.feed() 
d.show()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python面向对象编程是一种编程范式,它将程序组织成对象的集合,每个对象都有自己的属性和方法。在Python中,可以通过定义类来创建对象,并通过实例化类来创建具体的对象。引用[1]中的代码示例展示了一个Animal类,其中包含了初始化方法和一个__str__方法来返回对象的描述信息。通过这个类,可以创建Animal对象,并通过print函数输出对象。引用中的代码示例展示了如何使用@property装饰器来定义类的属性和属性的访问方法。通过这种方式,可以在访问属性时像访问普通属性一样使用点号,而不需要使用方法调用的方式。引用中的代码示例展示了多态在Python中的应用。多态是面向对象编程的重要概念,它允许不同的对象以相同的方式对外部访问,但具体的实现可能不同。在这个示例中,father、son和daughter类都继承了father类,并重写了tell方法。通过调用不同的对象的tell方法,可以看到不同的输出结果。总之,Python面向对象编程是一种灵活且强大的编程方式,它允许开发者以对象为中心来思考和组织代码,提高了代码的可读性和可维护性。通过定义类、创建对象和使用类的属性和方法,可以实现丰富多样的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python面向对象(全套)](https://blog.csdn.net/Thewei666/article/details/126652501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值