Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menaip Petunjuk Kelas Melampirkan Kaedah dalam Python?

Bagaimanakah Saya Boleh Menaip Petunjuk Kelas Melampirkan Kaedah dalam Python?

Barbara Streisand
Lepaskan: 2024-12-19 11:17:09
asal
578 orang telah melayarinya

How Can I Type Hint a Method's Enclosing Class in Python?

Taip Mengisyaratkan Kaedah dengan Jenis Kelas Melampirkan

Dalam Python, mewakili jenis kelas melampirkan kaedah boleh dicapai melalui pelbagai kaedah bergantung pada versi Python.

Python 3.7 dengan 'daripada masa hadapan anotasi import'

Dengan mendayakan ciri "penilaian tertunda bagi anotasi" dengan daripada anotasi import __future__, anotasi boleh disimpan sebagai rentetan dan dinilai secara tidak segerak.

from __future__ import annotations

class Position:
    def __add__(self, other: 'Position') -> 'Position':
        ...
Salin selepas log masuk

Python 3.11 dengan 'dari menaip import Self'

Python 3.11 memperkenalkan jenis Self untuk mewakili jenis kelas yang disertakan.

from typing import Self

class Position:
    def __add__(self, other: Self) -> Self:
        ...
Salin selepas log masuk

Python <3.7

Untuk versi Python sebelum 3.7, rentetan digunakan untuk menunjukkan kelas yang disertakan jenis.

class Position:
    def __add__(self, other: 'Position') -> 'Position':
        ...<p><strong>Mengendalikan Rujukan Hadapan</strong></p>
<p>PEP 484 menentukan bahawa rujukan hadapan harus diwakili sebagai rentetan sehingga ia sepenuhnya ditakrifkan.</p>
<pre class="brush:php;toolbar:false">class Tree:
    def __init__(self, left: 'Tree', right: 'Tree'):
        ...
Salin selepas log masuk

Alternatif

Elakkan menggunakan takrifan tiruan kelas yang dilampirkan atau menampal monyet kelas untuk menambah anotasi, kerana pendekatan ini boleh mengakibatkan anotasi yang salah tingkah laku.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menaip Petunjuk Kelas Melampirkan Kaedah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan