Python 面向对象程序设计

面向对象概述

1.对象

对象是一个抽象概念,表示任意存在的事物,万物皆对象。对象通常被划分为两个部分,静态部分和动态部分,静态部分被称为属性,动态对象被称为行为。

2.类

类是封装对象的属性和行为的载体,例如把某一事物比作其类,那么这个类自然就有了这个类中的全部属性,比如“人”类,该类中就具有胳膊腿嘴巴眼睛等属性,也有了学习看书谈恋爱睡觉等行为。

3.面向对象的特点

  • 封装,将对象的属性和行为封装起来并隐藏实现细节
  • 继承,子类从父类中得到父类所具有的一切
  • 多态,子类不仅能从父类中继承一切,同时子类自身也会发展出属于自身的行为

类的定义和使用

1.类的定义

class ClassName:
	'''帮助信息'''
	statement #类体

2.创建类实例

将一个封装好的类通过“=”赋予一个实例名,并标全非self的参数即为创建:

Example = ClassName(可选参数)

3.创建__init__()方法

方法和函数的功能非常类似,在创建时也都是用def关键字,init()是Python中的默认方法,其括号中必须包含一个self参数,这个参数是指向实例本身的,例如:

class Fruit:
	def __init__(self): #init方法创建
		print("这是水果类的init方法创建")
apple = Fruit() #类的实例

当然还可以加入其它参数,逗号分隔开即可。前后双下划线是一种约定,将其与普通方法区分开。

4.创建类的成员并访问

创建实例方法,与init一样第一个参数必须是self,两者的使用几乎没有区别,语法格式如下:

def functionName(self,parameterlist):
	block

parameterlist用于指定除了self以外的参数,各参数间逗号分隔

5.数据成员

  • 类属性:定义在类中,并且在函数体外的属性,类属性可以通过类名或实例名访问
  • 实例属性:定义在类的方法中的属性,只作用于当前实例,即在def函数模块内定义的。

注意:实例属性只能通过实例名访问。

6.访问限制

  • foo:特殊定义方法,通常为系统定义名字,比如__init__()
  • _foo:protected类型,只允许本身和子类访问
  • __foo:private类型,只允许定义该方法的类本身进行访问,且不能通过类的实例进行访问。但可以通过"类的实例名.类名__xxx"方式访问。

属性

该属性与类属性和实例属性不同,他是一种特殊的抽象的属性

  1. 可以通过@property将一个方法转换为属性,从而实现计算,通过@property转换后的属性不能重新赋值。
  2. @property还可以为属性添加安全保护机制,在方法体前加@property实现只读属性,可以读取,不可修改。

继承

一个类可以从另一个类中继承其全部属性,就如我们都会从父辈继承一些性状一样,被继承的类称为父类或基类,新的类称为子类或派生类,Python继承语法如下:

class ClassName(要继承的基类名):
	'''帮助信息'''
	statement #类体

当基类中的某个方法不完全使用与子类时,就需要在子类中重写父类的此方法,重写格式与父类一样。

基类__init__()的调用

在派生类中定义该方法时,不会自动调用基类的该方法,如果调用则需要在其下方使用super()函数:

super().__init__() #调用基类的__init__()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值