Classe Python (mémo d'apprentissage Python ⑦)

À propos des étendues et des espaces de noms

Espace de nom

point

portée

point

Exemple de portée et d'espace de noms


def scope_test():
    def do_local():
        spam = "local spam"
    def do_nonlocal():
        nonlocal spam
        spam = "nonlocal spam"
    def do_global():
        global spam
        spam = "global spam"
    spam = "test spam"
    
    do_local()
    print("After local assignment:", spam)
    # After local assignment: test spam
    
    do_nonlocal()
    print("After nonlocal assignment:", spam)
    # After nonlocal assignment: nonlocal spam
    
    do_global()
    print("After global assignment:", spam)
    # After global assignment: nonlocal spam

scope_test()
print("In global scope:", spam)
# In global scope: global spam

Définition de classe

Syntaxe de la définition de classe

Définition de classe


class className:
    <Phrase 1>
    .
    .
    .
    <Phrase N>

point

Objet de classe

point

Référence d'attribut


class MyClass:
    """A simple example class"""
    i = 12345
    def f(self):
        return 'hello world'

Instanciation de classe


x = MyClass()

__init__()une fonction


    def __init__(self):
        self.data = []

Instanciation de classe(Avec argument)


class Human:
    def __init__(self, height, weight):
        self.height = height
        self.weight = weight

x = Human(165, 55)
print('height:', x.height, 'weight:', x.weight)
# height: 165 weight: 55

Objet d'instance

point

Référence des attributs de données et des méthodes


class MyClass:
    def __init__(self):
        pass
    def f(self, word):
        print(word)
        
x = MyClass()

#Ajouter / référencer des attributs de données
x.counter = 1 #Les attributs de données n'ont pas besoin d'être déclarés à l'avance
while x.counter < 10:
    x.counter = x.counter * 2
print(x.counter) # 16
del x.counter

#Référence de la méthode
x.f("hello kawauso")

Objet de méthode

Stocker l'objet de méthode dans une variable


xf = x.f
xf('hello kawauso again') #production: hello kawauso again

Variables de classe et variables d'instance

point

Exemples de variables de classe et d'instance



class Dog:
    
    kind = 'Shiba' #Variable de classe
    
    def __init__(self, name):
        self.name = name #Variable d'instance
        
        
taro = Dog('Taro')
jiro = Dog('Jiro')

#Référence aux variables de classe
print(taro.kind) #Shiba
print(jiro.kind) #Shiba

#Référence aux variables d'instance
print(taro.name) #Taro
print(jiro.name) #Jiro

Divers autres

point

Héritage

Héritage de classe

point

Échantillon d'héritage


class base():
    def a(self):
        print('Je base.est un.base.Appeler b')
        self.b()
    def b(self):
        print('Je base.b.der.Remplacé par b')

class der(base):
    def b(self):
        print('Je der.b.')


b = base()
d = der()

b.a()
#Je base.est un.base.Appeler b
#Je base.b.der.Remplacé par b

d.a()
#Je base.est un.base.Appeler b
#Je der.b.

Héritage multiple

point

Variables privées

point

Exemple de mandaring de nom


class Mapping:
    def __init__(self, iterable):
        self.items_list = []
        self.__update(iterable)

    def update(self, iterable):
        for item in iterable:
            self.items_list.append(item)

    __update = update #↑ mise à jour()Copie privée de la méthode

class MappingSubclass(Mapping):
    # update()Tout en offrant une nouvelle signature de
    #Existant__init__()Peut être utilisé sans détruire
    def update(self, iterable):
        for item in zip(keys, values):
            self.items_list.append(item)

Autres choses

class Employee:
    pass

john = Employee()

john.name = 'Jhon Doe'
john.dept = 'computer lab'
john.salary = 1000

Les exceptions sont aussi des classes

point

Itérateur

point

__iter__()Quand__next__()


# __next__()Renvoie un objet avec une méthode__iter__()Définir une méthode
#Déjà__next()__Dans la classe définie par__iter__()Reviens toi-même
class Reverse:
    def __init__(self, data):
        self.data = data
        self.index = len(data)
    def __iter__(self):
        return self
    def __next__(self):
        if self.index == 0:
            raise StopIteration
        self.index = self.index - 1
        return self.data[self.index]

rev = Reverse('spam')
iter(rev)

for char in rev:
    print(char)

# m
# a
# p
# s

Générateur

point

Exemple de générateur


def reverse(data):
    for index in range(len(data)-1, -1, -1):
        yield data[index]

for char in reverse('golf'):
    print(char)

# f
# l
# o
# g

Type de générateur

point

Exemple d'expression de générateur


sum(i*i for i in range(10)) #Total au carré

xvec = [10, 20, 30]
yvec = [7, 5, 3]
sum(x*y for x,y in zip(xvec, yvec)) #produit intérieur

from math import pi, sin
#table des péchés
sine_table = {x: sin(x*pi/180) for x in range(0, 91)}

#Mots uniques sur la page
unique_words = set(word for line in page for word in line.split())

#Président des anciens
valedictorian = max((student.gpa, student.name) for student in graduates)

data = 'golf'
list(data[i] for i in rage(len(data)-1, 1, -1))

Recommended Posts

Classe Python (mémo d'apprentissage Python ⑦)
Module Python (mémo d'apprentissage Python ④)
[Mémo d'apprentissage] Bases de la classe par python
Gestion des exceptions Python (mémo d'apprentissage Python ⑥)
Mémo Python
mémo python
Mémo Python
mémo python
apprentissage de python
Mémo Python
Mémo Python
Entrée / sortie avec Python (mémo d'apprentissage Python ⑤)
Mémo d'apprentissage de la planification des sections ~ par python ~
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
[Python] Mémo sur le dictionnaire
Note d'étude LPIC201
[Python] classe, instance
[Python] Note d'apprentissage 1
"Kanrika" la classe python
mémo débutant python (9.2-10)
Notes d'apprentissage Python
Mémo d'apprentissage Django
À propos de python, classe
mémo débutant python (9.1)
sortie d'apprentissage python
Site d'apprentissage Python
★ Mémo ★ Python Iroha
Apprentissage Python jour 4
[Python] Mémo EDA
Apprentissage en profondeur Python
Mémo opérateur Python 3
apprentissage python (supplément)
Apprentissage profond × Python
[Memo] Apprentissage automatique
[Mon mémo] python
Mémo de métaclasse Python3
classe python, instance
[Python] Mémo de fond de carte
Mémo débutant Python (2)
notes d'apprentissage python
Les bases de #Python (classe)
[Python] Mémo Numpy
Mémo d'étude Python & Machine Learning: Préparation de l'environnement
Numéros, chaînes, types de listes Python (mémo d'apprentissage Python ①)
Structure et fonctionnement des données Python (mémo d'apprentissage Python ③)
Bibliothèque standard Python: seconde moitié (mémo d'apprentissage Python ⑨)
Mémo d'étude Python & Machine Learning ③: Réseau neuronal
Mémo d'étude Python & Machine Learning ④: Machine Learning par rétro-propagation
Mémo d'étude Python & Machine Learning ⑥: Reconnaissance des nombres
Bibliothèque standard Python: première moitié (mémo d'apprentissage Python ⑧)
classe wrapper python syslog
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
Apprendre Python avec ChemTHEATER 03
installation de python openCV (mémo)
"Orienté objet" appris avec python
classe de cas en python
Apprentissage amélioré 1 installation de Python
Apprendre Python avec ChemTHEATER 05-1
Python: pratique du Deep Learning