• 1.理解面向对象
  • 2.1理解类和对象
    2.1.1类
    2.1.2对象
  • 2.2面向对象实现方法
    2.2.1 定义类
    2.2.2 创建对象
    2.2.3 self
    2.3.4 一个类创建多个对象
  • 3.添加和获取对象属性
    3.1类外面添加对象属性
    3.2类外面获取对象属性
    3.3类里面获取对象属性
  • 4.具体方法
    4.1 init() 方法
    4.2 带参数的init代码书写
    4.3 str__方法
    4.4__del
    ()方法

1、理解面向对象

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

面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。
而编程就是设置事物能够做什么事。

2.1 理解类和对象

===》 二者关系:用类创建(实例化)一个对象

2.1.1类

类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真实存在的事物。
特征即是属性(变量) 行为即是方法(函数)

2.1.2对象

对象是类创建出来的真是存在的事物~~先有类,后有对象

2.2面向对象实现方法

2.2.1定义类

定义类语法: class 类名():

# 1.定义洗衣机的类
class Washer():
    def wash(self):
        print("能洗衣服")
2.2.2创建对象

创建对象语法: 对象名 =类名()

haier = Washer()

调用实例方法/对象方法 语法: 对象名.实例方法()

haier.wash()
# 需求:洗衣机  功能:洗衣服
# 1.定义洗衣机的类
class Washer():
    def wash(self):
        print("能洗衣服")

# 2.创建对象
# 对象名 = 类名()
haier = Washer()
# 3.验证功能

# 打印海尔对象
print(haier)

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

haier.wash()

结果展示:

print(haier)

python面向接口编程思想 python面向对象基础_创建对象


haier.wash()

python面向接口编程思想 python面向对象基础_对象名_02

2.2.3self
self指的是调用该函数的对象。
由于打印对象和打印self得到的内存地址是一样的,self指的是调用该函数的对象
# --coding:utf-8--
class Washer():
    def wash(self):
        print("我洗衣服")
        print(self)

haier = Washer()
print(haier) ##打印haier的内存地址

haier.wash()


#由于打印对象和打印self得到的内存地址是一样的,self指的是调用该函数的对象

结果展示:

python面向接口编程思想 python面向对象基础_对象名_03


python面向接口编程思想 python面向对象基础_实例方法_04

print(haier)

python面向接口编程思想 python面向对象基础_对象名_05

2.3.4 一个类创建多个对象
  1. 一个类是否能创建多个对象?
同一个类创建对象:haier1 和haier2
  1. 多个对象都调用函数时,self地址是否相同?
这两个对象的内存地址是不一样的 ==》两个类
# --coding:utf-8--
# 1.一个类是否能创建多个对象?
# 同一个类创建对象:haier1 和haier2 

class Washer:
    def wash(self):
        print("洗衣服")
        print(self)


print("haier1:")
haier1 = Washer()
haier1.wash()

# 2. 多个对象都调用函数时,self地址是否相同?   self地址不同
# 这两个对象的内存地址是不一样的 ==》两个类   

print("haier2:")
haier2 = Washer()
haier2.wash()

结果展示:

print("haier1:")
haier1 = Washer()
haier1.wash()
print("haier2:")
haier2 = Washer()
haier2.wash()

python面向接口编程思想 python面向对象基础_实例方法_06

3.类外面添加对象属性

属性即是特征,比如︰洗衣机的宽度、高度、重量...
对象属性既可以在类外面添加和获取,也能在类里面添加和获取。
3.1类外面添加对象属性

添加对象属性语法: 对象名.属性名 = 值

haier1.width=500
	haier1.height=800
# --coding:utf-8--
class Washer:
    def wash(self):
        print("洗衣服")
        print(self)

haier1 = Washer()

#对象属性 =   对象名.属性名 = 值
haier1.width=500
haier1.height=800

print(haier1.width)
print(haier1.height)
3.2类外面获取对象属性

获取对象属性语法: 对象名.属性名

print(haier1.width)
print(haier1.height)

结果展示:

python面向接口编程思想 python面向对象基础_python面向接口编程思想_07

3.3类里面获取对象属性

获取对象属性语法: self.属性

print(f'洗衣机的宽度是{self.width}')
 print(f'洗衣机的宽度是{self.height}')
# --coding:utf-8--
#定义类
class Washer:
    def wash(self):
        print("洗衣服")

    #类里面获取实例属性
    def print_info(self):
        #self.属性名
        print(f'洗衣机的宽度是{self.width}')
        print(f'洗衣机的宽度是{self.height}')
#创建对象
haier1 = Washer()

#添加实例属性

#对象属性 =   对象名.属性名 = 值
haier1.width=500
haier1.height=800

#对象调用实例方法 = 对象名.实例方法
haier1.print_info()

python面向接口编程思想 python面向对象基础_创建对象_08

4.具体方法

4.1__init__()方法
__init__()方法作用:初始化对象

__init__()方法,  在创建—个对象时默认被调用,不需要手动调用
__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。
# --coding:utf-8--
#1.定义类
        #1.1 定义_init_,添加实例属性~宽度+高度
        #1.2 添加实例方法,访问init方法的属性
#2. 创建对象
#3. 调用实例方法 ,打印init方法里面的实例属性值


#定义类
class Washer:

    #1.定义_init_,添加实例属性~宽度+高度
    def __init__(self):
        self.width=400
        self.height=900

    #1.2 定义实例方法print_info,访问init方法的实例属性
    def print_info(self):
        #类里面调用实例属性
        print(f"洗衣机的高度是{self.height},宽度是{self.width}")

#2.创建对象
haier = Washer()

#3. 调用实例方法 ,打印init方法里面的实例属性值
haier.print_info()

结果展示:

python面向接口编程思想 python面向对象基础_创建对象_09

4.2带参数的init代码书写

思考:一个类可以创建多个对象,如何对不同的对象设置不同的初始化属性呢?
答∶传参数。

def __init__(self,width,height):
    self.width = width
    self.height = height
# --coding:utf-8--
class Washer:
    #1.定义_init_,width,height 为形参
    def __init__(self,width,height):
        self.width = width
        self.height = height

    #1.2 定义实例方法print_info,访问init方法的实例属性
    def print_info(self):
        #类里面调用实例属性
        print(f"洗衣机的高度是{self.height},宽度是{self.width}")

#2.创建对象
haier1 = Washer(10,20)
#3. 调用实例方法 ,打印init方法里面的实例属性值
haier1.print_info()


haier2 = Washer(900,1000)
haier2.print_info()

结果展示:

python面向接口编程思想 python面向对象基础_对象名_10

4.3__str__方法
当使用print输出对象的时候,默认打印对象的内存地址。

如果类定义了_str_方法,那么就会打印从在这个方法中return的数据。
# 定义__str__()方法
    def __str__(self):
        return '这是海尔洗衣机的说明书'
        #return :解释说明,返回的是类的说明或者对象状态的说明
# --coding:utf-8--
class Washer:
    def __init__(self,width,height):
        self.width = width
        self.height = height

   # 定义__str__()方法
    def __str__(self):
        return '这是海尔洗衣机的说明书'
        #return :解释说明,返回的是类的说明或者对象状态的说明

#2.创建对象
haier1 = Washer(10,20)

#这是海尔洗衣机的说明书

print(haier1)

结果展示:

python面向接口编程思想 python面向对象基础_python_11

4.4 del()方法
当删除对象时,python解释器也会默认调用_del__()方法。
# 定义__del__()方法
    def __del__(self):
        print("对象已经删除")
# --coding:utf-8--
# --coding:utf-8--
class Washer:
    def __init__(self):
        self.width=500

   # 定义__del__()方法
    def __del__(self):
        print("对象已经删除")

haier = Washer()

结果展示:

python面向接口编程思想 python面向对象基础_创建对象_12