Python高级编程day1.初识面向对象

面向对象

在面向对象没有出现之前,只能通过这种方式来解决问题(面向过程)

输出结果:

面向过程描述这一个人的信息和行为很容易,但是代码肯定是要处理很多人的,这个时候该怎么办?

如果使用相同的变量名,则肯定会冲突,但是如果使用不同的变量名

则会变得非常麻烦, 同时别人如何知道关于人已经定义哪些东西了呢? 

---------------------------------------------------------------------------------------------------------------------------------

借鉴函数的封装思维,再次对函数和变量进行封装,来提高代码的复用性

上述两种方法输出结果:

通过这样的封装,把和人相关的变量函数等放在了一起。

只要找到这个部分代码,就能知道关于人已经定义了哪些变量和函数

为了便于区分,把用关键字 class 定义的代码块称为

在类里面的变量称为 类的属性

在类里面的函数称为 类的方法

一句话概括:(变量就是属性,函数即是方法

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

面向对象:

    用面向对象的思维去解决问题。

    将某一类事物相关的属性和方法封装在一起,用来表示这类事物。

self是实例自己

__init__ 是初始化函数,在实例化时会自动的调用

实例通过. )操作符来调用属性或方法

---------------------------------------------------------------------------------------------------------------------------------

面向对象是一种抽象化的编程思想,很多编程语言中都有的一种思想

面向对象就是将编程当成是一个事物。

对于外界来说,事物是直接使用的,不用去管内部的情况,而编程就是设置事物能够做什么事。

类和对象

图纸---->洗衣机(按照图纸加工)---->洗衣服(洗衣机的功能)

类和对象的关系:用类去创建一个对象

类是一系列具有相同特征行为的事物的统称,是一个抽象的概念,不是真实存在的事物

特征即是属性,行为即是方法:

解释:特征就是属性 属性就是变量 行为就是方法 方法就是函数

类就好比制造洗衣机时用到的图纸,也就是说就是用来创建对象

对象是类创建出来的真实存在的事物

例如:洗衣机

注意:开发中,先有类,再有对象

定义类

语法

class 类名():

    代码

    ....

例子如下:

输出结果:

注意:类名要满足标识符命名规则,同时遵守大驼峰法的命名习惯体验

# 需求:洗衣机 功能:能洗衣服

# 1.定义洗衣机类

class Washer():

    # 方法  self:对象

    def wash(self):

        print("能洗衣服")

# 2.创建对象

# 对象名 = 类名()

haier = Washer()

# 3.验证成果

# 3.1打印haier对象

print(haier)

# 3.2 使用wash功能  ---- 实例方法/对象方法  --- 对象名.wash()

haier.wash()

---------------------------------------------------------------------------------------------------------------------------------

创建对象—对象又名实例

语法:

对象名 = 类名()

体验

# 需求:洗衣机 功能:能洗衣服

# 1.定义洗衣机类

class Washer():

    # 方法  self:对象

    def wash(self):

        print("能洗衣服")

# 2.创建对象

# 对象名 = 类名()

haier = Washer()

类里面的self

指的是调用该函数的对象

# 1.定义类

class Washer():

    # 方法  self:对象

    def wash(self):

        print("能洗衣服")

        print(self)

# 2.创建对象

haier = Washer()

print(haier)

haier.wash()

结论:

由于打印对象和打印self得到的内存地址相同,所以self指的是调用该函数的对象

一个类可以创建多个对象

# 1.定义类

class Washer():

    # 方法  self:对象

    def wash(self):

        print("能洗衣服")

        print(self)

# 2.创建对象

haier = Washer()

print(haier)

haier.wash()

print("======"*20)

haier1 = Washer()

print(haier1)

haier1.wash()

输出结果:

添加和获取对象属性

属性即是特征,比如:洗衣机的宽度,高度,重量…

对象属性既可以在类外面添加和获取,也能在类里面添加和获取

类外面添加对象属性

语法

对象名.属性名 = 值

体验

# 1.定义类

class Washer():

    # 方法  self:对象

    def wash(self):

        print("能洗衣服")

        print(self)

# 2.创建对象

haier = Washer()

# 添加属性  --- 对象名.属性名 = 值

haier.width = 500

haier.height = 800

类外面获取对象属性

语法

对象名.属性名

体验

# 获取属性 对象名.属性名

print(f'haier洗衣机的宽度是{haier.width}')

print(f'haier洗衣机的宽度是{haier.height}')

类里面获取对象属性

输出结果:

语法

self.属性名

# 1.定义类

class Washer():

    # 方法  self:对象

    def wash(self):

        print("能洗衣服")

        print(self)

    def print_info(self):

        print(f'haier洗衣机的宽度是{haier.width}')

        print(f'haier洗衣机的宽度是{haier.height}')

# 2.创建对象

haier = Washer()

# 添加属性  --- 对象名.属性名 = 值

haier.width = 500

haier.height = 800

# 获取属性 对象名.属性名

print(f'haier洗衣机的宽度是{haier.width}')

print(f'haier洗衣机的宽度是{haier.height}')

# 调用实例方法/调用对象方法

haier.print_info()

体验魔法方法init

在Python里面,两个下划线开头 两个下划线结尾的这类方法叫做魔法方法,指的是具有特殊功能的函数

魔法init的使用

1. 调用时机:在创建对象之后,会立即调用

2.作用:

        1.用来给对象添加属性,给对象属性一个初始值(构造函数)

        2.代码的业务需求,每创建一个对象,都需要执行的代码可以写在__init__中

注意点:如果__init__有除了self只有的形参 那么在创建对象的时候需要给额外的形参产地实参值

类名(实参)

__init__(self)中的self参数,不需要开发者传递,Python解释器会自动把当前的对象引用传递过去。

class Dog():

    def __init__(self,name):

        print("我是__init__方法,我被调用了")

        # 对象.属性名 = 属性值

        self.name = name

def sleep(self):

        print("狗狗在睡觉")

# 创建对象

dog = Dog('小黑')

print(dog.name)

# dog.sleep()

dog1 = Dog('国宝')

print(dog1.name)

输出结果:

作业:

简单

1.什么是面向对象? 答: 面向对象是一种抽象化的编程思想。

                                      面向对象就是将编程当成是一个事物。

                                     对于外界来说,事物是直接使用的,不用去管内部的情况,而编程就是设置事物能够做什么事。

参考答案:面向对象就是把编程看做一个事物,编程就是设置事物能够做什么。

2.类和对象的关系是什么?

答: 1.先有类,后有对象

     2.类是事物的统称。

     3.对象是具体的的事物。

3.设计一个桌子类,长度宽度和高度

方法2:

困难

1.定义一个账户类,可以创建账户,存款,取款,查询余额,以及销户等操作

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中国第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值