21-Pythonでのオブジェクト指向の基本の詳細な紹介

07-オブジェクト指向\ 01-オブジェクト指向Basics.pdf

1.クラスを定義します

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

2.オブジェクトを作成します

对象名 = 类名()

1.実例

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

print(haier)
haier.wash()

出力:

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

3.自己-関数を呼び出すオブジェクト自体

selfは、関数を呼び出したオブジェクトを指します。

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

print(haier)
haier.wash()

出力:

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

オブジェクトとselfを印刷して得られた結果は同じであり、どちらも現在のオブジェクトのメモリ内のストレージアドレスです。

4.オブジェクトプロパティを追加および取得します

1.クラス外にオブジェクトプロパティを追加します

1.文法

对象名.属性名 =

2.コード例

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}')

出力:

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

2.クラス内のプロパティを取得します

1.文法

self.属性名

2.コード例

# 定义类
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.魔法の方法

Pythonでは、__xx__()関数はマジックメソッドと呼ばれ、特別な関数を持つ関数を参照します。

1.1。 __init__()

1.__init__() 方法的作用:オブジェクトを初期化します

# 定义类
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()

出力:

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

2.__init__()注意が必要な事項

  • __init__()メソッド。オブジェクトの作成時にデフォルトで呼び出され、手動で呼び出す必要はありません。
  • __init__(self) の自己パラメータは開発者が渡す必要はありません。Pythonインタプリタは現在のオブジェクト参照を自動的に渡します。

3.パラメータ付き __init__()

思考:クラスは複数のオブジェクトを作成できます。オブジェクトごとに異なる初期化プロパティを設定するにはどうすればよいですか?
回答:パラメーターを渡します。

1.コード例

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()

出力:

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

2.2。 __str__()

printを使用してオブジェクトを出力する場合、デフォルトでオブジェクトのメモリアドレスが出力されます。クラスがdefinedMcAfeemethodである場合、__str__このメソッドから印刷データを返します。

1.コード例

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

出力:

这是海尔洗衣机的说明书

3.3。 __del__()

オブジェクトを削除すると、PythonExplainはデフォルトの__del__()メソッドを呼び出します

1.コード例

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

出力:

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

おすすめ

転載: blog.csdn.net/sgy1993/article/details/114980722