python面向对象-类和对象

一. 类的定义

class 类名():
    代码
# 定义类
class Washer():
    def wash(self):
        print("洗衣服")

 

注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯。

二. 创建对象

对象名 = 类名()
# 创建对象
w = Washer()
# 调用方法
w.wash()    # 洗衣服

三. self

self指的是调用该函数的对象。相当于java中的this

四. 给对象添加属性

1.在类外面添加属性

对象名.属性名 = 值  
# 创建对象
w = Washer()

# 添加和设置属性
w.width = 100
w.heigth = 500

# 获取属性的值
print(w.heigth)     # 500
print(w.width)      # 100

在类外面设置的属性可在类方法上通过self获取到:

# 定义类
class Washer():
    def wash(self):
        print(self.height)  # 500


# 创建对象
w = Washer()

# 添加和设置属性
w.width = 100
w.height = 500

# 获取属性的值
print(w.height)     # 500
print(w.width)      # 100

w.wash()

五. 魔法方法

在Python中,`__xx__()`的函数(双下划线开头和结尾的函数)叫做魔法方法,指的是具有特殊功能的函数。

1. __init__() 初始化方法

1.1 __init__() 方法的作用

__init__()方法,在创建一个对象时默认被调用,不需要手动调用。`__init__(self)`中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。

# 定义类
class Washer():
    def __init__(self):
        self.width = 100
        self.height = 500


# 创建对象
w = Washer()

# 获取属性的值
print(w.height)     # 500
print(w.width)      # 100

1.2 带参数的`__init__()`

`__init__()`可以传递参数,在创建对象时候传入,如 `__init__(self, width, height)`

# 定义类
class Washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height


# 创建对象
w = Washer(100, 500)

# 获取属性的值
print(w.height)     # 500
print(w.width)      # 100

说明

1. w = Washer(100, 500)中的100 和500 分别对应 __init__(self, width, height) 中的width 和height, 创建Washer对象时,自动调用__init__()并将这两个值传入完成对象初始化

2. 第一个参数默认为self,由解释器自动传入,创建对象时不传

3. 通过self在类中可以定义需要的属性, 如self.width = width 即是定义了一个width属性

2 __str__() 方法

当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了`__str__`方法,那么就会打印从在这个方法中 return 的数据。

# 定义类
class Washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def __str__(self):
        return f"这是一台洗衣机。。。长{self.height}, 宽{self.width}"

# 创建对象
w = Washer(100, 500)
print(w)    # 这是一台洗衣机。。。长500, 宽100

3 __del__() 方法的作用

当删除对象时,python解释器会默认调用`__del__()`方法。

# 定义类
class Washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def __del__(self):
        print("这台洗衣机要被删除了")     #删除对象时执行

# 创建对象
w = Washer(100, 500)

# 删除对象
del w    # 这台洗衣机要被删除了

 

posted @ 2020-12-25 22:52  foreast  阅读(75)  评论(0编辑  收藏  举报