【Python】面向对象

面向对象编程OOP(Object Oriented Programming)

基本名词

  • C语言是面向过程的编程语言(负责完成某个具体任务的代码;即函数;把要实现的事情拆分成一个个步骤并依次完成;程序执行效率高)。

  • Python语言和Java语言是面向对象的编程语言,先考虑对象的属性、方法等,再定义类,通过类创建对象,类是创建对象的模板,对象是类的实例。

  • 属性attribute:颜色、大小、体积、编号等,即放在类里面的变量。

  • 方法method:移动、放大、缩小、变色、打印等,即放在类里面的函数。

  • 面向对象编程的三个特征:封装、继承、多态。

  • 封装:写类的人将内部实现细节隐藏,使用类的人通过外部接口访问和使用(接口:提供使用的方法)

  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

  • 方法:类中定义的函数。

  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

  • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。

  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

  • 局部变量:定义在方法中的变量,只作用于当前实例的类。

  • 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。

  • 实例化:创建一个类的实例,类的具体对象。

  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

基本代码

类定义属性(对象有什么性质)

注意左右双下划线

class CuteCat:   # pascal名命法:首字母大写,适用于类名
	def __init__(self):   # 第一个参数永远是self,用于表示对象自身,用于把属性的值绑定在实例对象上
		self.name = 'lulu'  # self.name 表示对象的name属性的值
	    # name = 'lulu'  # 没有self 默认只是给普通的name变量赋值,不会把值看成对象的属性
cat1 = CuteCat()  # 创建对象是用类名(参数),这样子_init_方法会被调用,并返回一个对象,self参数不需要手动传入
print(cat1.name)   # 返回lulu
class CuteCat:     # 创建类
    def __init__(self,cat_name,cat_age,cat_color):   # 定义属性
        self.name = cat_name  # self.name 对象的属性
        self.age = cat_age
        self.color = cat_color
cat1 = CuteCat('lulu',2,'白色')   # 调用类,传入属性的值
print(f'小猫{cat1.name}的年龄是{cat1.age}岁,花色是{cat1.color}的。')  # 小猫lulu的年龄是2岁,花色是白色的。

类定义方法(对象能做什么事情)

class CuteCat:   # 创建类
	def 方法名(self,'参数'):   # 定义方法
		语句A
cat1 = CuteCat.方法名('参数')   # 创建实例,调用类  实例名.方法名

实例

# 定义类
class city:
    def __init__(self,city_name,country):
        self.city_name = city_name
        self.country = country
    def describe_city(self):
        print(f"城市名:{self.city_name},来自{self.country}。")
    def welcome(self):
        print(f'welcome to {self.city_name}!')

# 创建实例
foshan = city('foshan','China')
# 打印对象属性
print(foshan.city_name)  # foshan
print(foshan.country)    # China
foshan.describe_city()   # 城市名:foshan,来自China。
foshan.welcome()    # welcome to foshan!

继承

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值