cari
  • Log masuk
  • Daftar
Penetapan semula kata laluan berjaya

Ikuti proiects vou berminat dengan andi aet terbaru mengenai mereka

kaedah kelas

1. Kaedah khusus kelas

Apabila kelas diwujudkan, ia akan mengandungi beberapa kaedah, terutamanya kaedah berikut:

Kaedah khusus kelas:

Pembina, dipanggil semasa menjana objek __del__ Destructor, digunakan semasa melepaskan objek __repr__ repr__ Tetapkan nilai mengikut indeks Metret nilai mengikut indeks Mengambilkan Panjang Comparison OperationFunction Calladdition Operasi__sub__ Operasi tolak__mul__ Operasi darab__div__ Operasi bahagi operasi utama__pow__ Powered

Sudah tentu kadangkala kita perlu mendapatkan maklumat yang berkaitan tentang kelas Kita boleh menggunakan kaedah berikut:

type(obj): untuk mendapatkan jenis objek yang sepadan

isinstance(obj, type): untuk menentukan sama ada objek adalah daripada jenis yang ditentukan. , jika tiada atribut yang sepadan, kembalikan nilai lalai ( Premisnya ialah lalai ditetapkan), jika tidak, pengecualian AttributeError akan dilemparkan

setattr(obj, attr, value): Tetapkan nilai atribut/kaedah, serupa dengan obj.attr=value;

dir(obj): Ya Dapatkan senarai semua atribut dan nama kaedah objek yang sepadan:

2 Kawalan akses kaedah

Malah, kita juga boleh menganggap kaedah sebagai atribut kelas, jadi kawalan akses kaedah adalah sama dengan atribut Tidak ada kaedah persendirian. Segala-galanya bergantung pada pengaturcara untuk secara sedar mematuhi piawaian pengaturcaraan Python. Contohnya seperti berikut, peraturan khusus adalah sama dengan sifat,

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class User(object):
    def upgrade(self):
        pass
    def _buy_equipment(self):
        pass
    def __pk(self):
        pass

3 Penghias kaedah

@classmethod dipanggil terus menggunakan nama kelas dan bukannya objek@property boleh diakses seperti The. kaedah panggilan adalah sama dengan atribut

Lihat contoh penggunaan khusus:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
    lv = 5
    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account
    def get_account(self):
        return self.__account
    @classmethod
    def get_name(cls):
        return cls.lv
    @property
    def get_age(self):
        return self._age
if __name__ == '__main__':
    userInfo = UserInfo('两点水', 23, 347073565);
    # 打印所有属性
    print(dir(userInfo))
    # 打印构造函数中的属性
    print(userInfo.__dict__)
    # 直接使用类名类调用,而不是某个对象
    print(UserInfo.lv)
    # 像访问属性一样调用方法(注意看get_age是没有括号的)
    print(userInfo.get_age)

Hasil operasi:

fail baharu
Tetapkan Semula Kod
Operasi automatik
serahkan
Pratonton Clear
  • Cadangan kursus
  • Muat turun perisian kursus
Deskripsi Kaedah __init__
__setitem__
__getItem__
__Len__
__CMP__
__Call__
__Add__