018 Python中的面向对象 (上)

这篇博客详细介绍了Python中的面向对象编程,包括类的概念、创建、构造函数、实例方法、属性的定义与操作,以及类变量、文档字符串和不同类型的类方法。此外,还探讨了继承和派生的基本原理,如单继承、覆盖以及super函数的应用。
摘要由CSDN通过智能技术生成

一、面向对象编程

Object – Oriented Programing

面向对象,是把一切东西都看成物体,把大型的物体分为小物体。

函数编程,是面向过程的编程,按照流程编写;

什么是对象?

对象是指现实中的物体或实体

什么是面向对象?

把一切看成对象(实例),用各种对象之间的关系来描述事物

对象有什么特征?

对象有很多属性(名词),(姓名,性别,年龄,…)

对象有很多行为(动词),(学习,吃饭,睡觉,…)

示意

车(类)     -----> BYD E6(京A 8888)(实例,对象)

int(类)     ----->100(对象,实例)

二、类(整体介绍)

2.1 类是什么

什么是类?

拥有相同属性和行为的对象分为一组,即为一类

类是用来描述对象的工具,用类可以创建此类的对象(实例)

2.2 类的创建语句

语法

Class 类名(继承列表):

    ‘’’类文档字符串’’’

    实例方法定义

    类变量定义

    类方法定义(@classmethod

    静态方法定义(@staticmethod

作用

1.创建一个类

2.用于描述对象的行为和属性

3.用于创建此类的一个或多个同类对象(实例)

说明

1.继承列表可以省略,省略继承列表表示类继承自object

2.类名必须为标识符

3.类名实质上是变量,它绑定一个类

示例 class.py

#class.py
# 示意:定义最简单一个类

class Dog:
    '''这个类用于描述一种小动物的行为和属性'''
    pass

dog1 = Dog()    #创建一个新的Dog类的对象
print(id(dog1))     #打印这个对象的id


dog2 = Dog()    #创建另一个新的Dog类的对象
print(id(dog2))     

# 对比

lst1 = list()   #创建一个空列表
print(id(lst1))
lst2 = list()   #创建另一个空列表
print(id(lst2))


dog1.append(10000)    #只要在类中添加方法就可以实现此操作

2.3 构造函数

构造函数调用表达式

类名([ 创建传参列表 ])

作用

创建这个类的实例对象,并返回此实例对象的引用关系

实例说明

1.实例有自己的作用域和名字空间,可以为该实例添加实例变量(属性 )

2.实例可以调用类方法和实例方法

方法是描述对象的行为

3.实例可以访问类变量和实例变量

2.4 类的三种方法

2.4.1 实例方法

语法

Class 类名(继承列表):

def 实例方法(self,形参1,形参2,…):

    ‘’’方法的文档字符串’’’

    语句块

作用

用于描述一个对象的行为,让此类型的全部对象都拥有相同的行为

说明

1.实例方法的实质是函数,是定义在类内的函数

2.实例方法至少有一个形参,第一个形参代表调用这个方法的实例,一般命名为‘self

实例方法的调用语法

1.实例 . 实例方法名(调用传参)

2.类名 . 实例方法名(实例, 调用传参)

示例 instance_method.py

# instance_method.py
# 示意: 定义Dog类,并让Dog类创建的对象有相同的行为
# 吃,睡,玩


class Dog:
    '''这个类用于描述一种小动物的行为和属性'''
    def eat(self, food):    #这是方法,不是函数;只能借用Dog的对象来调用
        print('id is', id(self),'的小狗正在吃',food)

dog1 = Dog()   
print('dog1的id', id(dog1))
dog1.eat('骨头') #传参: dog1--self,   '骨头'---food


dog2 = Dog()   
print('dog2的id', id(dog2))
dog2.eat('包子') 

示例 instance_method2.py

#instance_method2.py

#示意:定义Dog类,并可以用help(Dog)查看类的文档字符串
#在交互模式下ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值