21-Introducción detallada de conceptos básicos orientados a objetos en Python

07-Object Oriented \ 01-Object Oriented Basics.pdf

1. Defina la clase

class Washer():
    def wash(self):
        print('我会洗衣服')
        print(self)

2. Crea un objeto

对象名 = 类名()

1. Ejemplo práctico

class Washer():
    def wash(self):
        print('我会洗衣服')
haier = Washer()

print(haier)
haier.wash()

Producción:

<__main__.Washer object at 0x000002076E0C1FD0>
我会洗⾐衣服

3. self-el propio objeto que llama a la función

self se refiere al objeto que llamó a la función.

class Washer():
    def wash(self):
        print('我会洗衣服')
        print(self)
haier = Washer()

print(haier)
haier.wash()

Producción:

<__main__.Washer object at 0x000001C91DB51FD0>
我会洗衣服
<__main__.Washer object at 0x000001C91DB51FD0>

Los resultados obtenidos al imprimir el objeto y el self son los mismos, y ambos son las direcciones de almacenamiento en la memoria del objeto actual.

4. Agregar y obtener propiedades de objeto

1. Agregue propiedades de objeto fuera de la clase

1. Gramática

对象名.属性名 =

2. Ejemplos de código

class Washer():
    def wash(self):
        print('我会洗衣服')
        print(self)
haier = Washer()

print(haier)
haier.wash()

haier.width = 100
haier.height = 200

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

Producción:

<__main__.Washer object at 0x000001DD4A8A2FD0>
我会洗衣服
<__main__.Washer object at 0x000001DD4A8A2FD0>
haier 洗衣机的高度是200
haier 洗衣机的宽度是100

2. Obtenga propiedades dentro de la clase

1. Gramática

self.属性名

2. Ejemplos de código

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

5. Método mágico

En Python, las __xx__()funciones se denominan métodos mágicos, que se refieren a funciones con funciones especiales.

1. __init__()

1. __init__() 方法的作用:Inicializa el objeto

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

    def print_info(self):
        print(f'洗衣机的宽度是{self.width}, 高度是{self.height}')
# 创建对象
haier = Washer()
# 添加实例属性

haier.print_info()

Producción:

洗衣机的宽度是300, 高度是200

2. __init__()Asuntos que requieren atención

  • __init__()Método, que se llama de forma predeterminada cuando se crea un objeto y no necesita llamarse manualmente
  • __init__(self) El desarrollador no necesita pasar el parámetro self en, el intérprete de Python pasará automáticamente la referencia del objeto actual.

3. Con parámetros __init__()

Pensamiento: una clase puede crear varios objetos. ¿Cómo establecer diferentes propiedades de inicialización para diferentes objetos?
Respuesta: Pasar parámetros.

1. Ejemplo de código

class Washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height
    def print_info(self):
        print(f'洗衣机的宽度是{self.width}')
        print(f'洗衣机的高度是{self.height}')

haier1 = Washer(10, 20)
haier1.print_info()

haier2 = Washer(30, 40)
haier2.print_info()

Producción:

洗衣机的宽度是10
洗衣机的高度是20
洗衣机的宽度是30
洗衣机的高度是40

2. __str__()

Cuando se utiliza la impresión para imprimir un objeto, la dirección de memoria del objeto se imprime de forma predeterminada. Si la clase se define como __str__método, devolverá los datos de impresión de este método.

1. Ejemplo de código

class Washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height
    def __str__(self):
        return '这是海尔洗衣机的说明书'
haier1 = Washer(10, 20)
# 这是海尔洗衣机的说明书
print(haier1)

Producción:

这是海尔洗衣机的说明书

3. __del__()

Cuando eliminas un objeto, python explica 器 llamará al __del__()método predeterminado .

1. Ejemplo de código

class Washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height
    def __del__(self):
        print(f'{self}对象已经被删除')
haier1 = Washer(10, 20)
# <__main__.Washer object at 0x0000026118223278>对象已经被删除
del haier1

Producción:

<__main__.Washer object at 0x0000022F8FBC1FD0>对象已经被删除

Supongo que te gusta

Origin blog.csdn.net/sgy1993/article/details/114980722
Recomendado
Clasificación