https://nktmemo.wordpress.com/2014/01/05/画像のurlを受け取りbase64テキストに変換する(python)/
[Exemple: type de dés avec un seul nom, qui n'a pas de fonction]
>>> class Dice:
... pass
...
[Instance d'appel]
>>> sai = Dice()
Si aucune erreur ne se produit, un nouveau type de dés a été préparé et affecté à la variable sai.
La nature est déterminée par l'attribut (attribut), Créez des fonctions par des méthodes.
Exemple) Dés ・ Propriétés: 6 faces et chiffres gravés dessus ・ Vous pouvez lancer et décider d'un numéro
[Type de données] -Une collection d'attributs de données (attributs) et de fonctions (méthodes) plus simples. "Attribut" et "Méthode" Comment c'est Le mécanisme (dessin de conception) qui détermine la classe est le concept de classe.
La classe est un dessin de conception de type de données
Créer un nouveau type de données avec le mot-clé class
Ajoutez un attribut de données qui exprime le nombre de faces de dés au type de dés.
>>> class Dice:
... face_num = 6
...
>>>
>>> sai = Dice()
>>> sai.face_num
6
Un nouvel attribut de données, face_num, a été ajouté au type de dés. Vous pouvez voir que 6 est stocké.
[Une fonction qui renvoie au hasard un nombre de 1 à 6]
>>> import random
>>>
>>> def shoot():
... return random.randint(1,6)
...
Si vous mettez cette fonction dans la classe telle quelle, elle ne fonctionnera pas comme une méthode.
Alors que devons-nous faire
・ "Self" qui doit écrire un argument
sample.py
Réunis en module
>>> import random
>>>
>>> class Dice:
... face_num = 6
... def shoot(self):
... return random.randint(1,6)
...
>>> sai = Dice()
>>> sai.shoot()
5
face_num = 6 n'est pas utilisé Par exemple
※Erreur
err.py
>>> import random
>>>
>>> class Dice:
... face_num = 6
... def shoot(self):
... return random.randint(1,face_num)
...
Cela entraînera une erreur. face_num = 6 Vous ne pouvez pas voir les variables extérieures depuis l'intérieur de la méthode. Il est décidé que les données utilisées dans la fonction sont passées en argument
face_num est un attribut de données que le type Dice possède par lui-même, donc Il est gênant de se donner la peine de le passer comme argument à la méthode. À mesure que le nombre d'attributs de données augmente, le nombre d'arguments de méthode augmente, ce qui devient difficile.
Lors de la préparation d'une instance, nous ne savons pas quel nom de variable l'utilisateur attribuera. Il est décidé d'appeler l'instance "self" dans le premier argument de la méthode afin qu'une instance de type Dice puisse être créée avec n'importe quel nom.
sample.py
>>> class Dice:
... face_num = 6
... def shoot(self):
... return random.randint(1,self.face_num)
...
Lorsque j'ai créé la fonction, je pouvais voir les variables en dehors de la fonction, mais pourquoi le visage se trouve-t-il juste à côté ici?_Tu ne vois pas num?
La plage à partir de laquelle la variable peut être référencée est déterminée par l'emplacement défini.
portée.
Ce que tu peux voir d'où tu es Uniquement la "portée intégrée" et la "portée du module" auxquelles vous appartenez.
import random
random.randint(1,10)
Si vous lui donnez le nom au hasard comme celui-ci, vous pouvez vous y référer. Il est appelé "espace de nom".
sample.py
#! /usr/bin/python
#-*- coding:utf-8 -*-
import dice
sai = dice.Dice()
count = sai.shoot()
print(count)
sample.py
import random
class Dice:
face_num = 6
def shoot(self):
return random.randint(1,self.face_num)
Lors de la préparation d'une instance avec un type de données autre que le type de données intégré, il était nécessaire d'appeler la méthode d'initialisation. Étant donné que le type de dés créé n'est pas un type de données intégré, je l'ai écrit comme suit.
sai = dice. Dice()
Je fais toujours ça comme ça. Cela appelle une méthode d'initialisation sans arguments. Lorsque vous créez un "nouveau type de données" à l'aide de la classe, Python fournit automatiquement une méthode d'initialisation sans arguments. Que faire si je souhaite modifier le comportement de cette méthode d'initialisation?
Le vrai nom de la méthode d'initialisation init
[Achevée]
dice.py
import random
class Dice:
face_num = 6
def __init__(self):
print("Hello")
def shoot(self):
return random.randint(1,self.face_num)
sample.py
#! /usr/bin/python
#-*- coding:utf-8 -*-
import dice
sai = dice.Dice()
count = sai.shoot()
print(count)
Hello
2
Lors de l'appel de la méthode d'initialisation afin que différents types de dés puissent être réalisés avec le type Dice 4, 6, 8, 12, 20 avec des arguments Spécifiez l'un des nombres entiers de Être capable de décider de la forme des dés.
dice2.py
import random
class Dice:
def __init__(self,val):
self.face_num = val
def shoot(self):
return random.randint(1,self.face_num)
test10.py
import dice2
sai = dice2.Dice(4)
count = sai.shoot()
print(count)
Si aucun argument n'est donné, une erreur se produira
Définissez la valeur par défaut de l'argument val dans dice2.py
import random
class Dice:
def __init__(self,val=6):
self.face_num = val
def shoot(self):
return random.randint(1,self.face_num)
Il n'existe que 5 types de tétraèdres réguliers, mais le type Dice actuel est un argument de la méthode d'initialisation. Toute valeur sera spécifiée. Donc, Vérifiez l'argument avec la méthode d'initialisation et donnez une erreur si ce n'est pas possible.
Le fait que l'argument soit un nombre spécifié ou non est évalué à l'aide du mot-clé dans et d'une liste.
>>> 4 in [4,6,8,12,20]
True
>>> 7 in [4,6,8,12,20]
False
>>> 7 not in [4,6,8,12,20]
True
dice3.py
#coding:UTF-8
import random
class Dice:
def __init__(self,val=6):
if val not in [4,6,8,12,20]:
raise Exception("Il n'y a pas de tel polyèdre.")
self.face_num = val
def shoot(self):
return random.randint(1,self.face_num)
test10.py
import dice3
sai = dice3.Dice(99)
count = sai.shoot()
print(count)
dice3.py
#! /usr/bin/python
#-*- coding:utf-8 -*-
import random
class Dice:
def __init__(self,val=6):
if val not in [4,6,8,12,20]:
#raise Exception("Il n'y a pas de tel polyèdre")
print("Il n'y a pas de tel polyèdre")
self.face_num = val
def shoot(self):
return random.randint(1,self.face_num)
-*- coding:utf-8 -*-
import dice3
num = input("4,6,8,12,Lequel des 20 jouerez-vous?:")
my_dice = dice3.Dice(num)
cpu_dice = dice3.Dice(num)
my_pip = my_dice.shoot()
cpu_pip = cpu_dice.shoot()
print("CPU:"+ str(cpu_pip) + "tu"+ str(my_pip))
if my_pip > cpu_pip:
print("Toutes nos félicitations. Vous gagnez")
elif my_pip < cpu_pip:
print("Pardon!Tu as perdu")
else:
print("C'est un tirage au sort")
-Le type de données est composé d'attributs de données et de méthodes ・ Pour créer un nouveau type de données, créez une classe qui sert de dessin de conception. ・ La classe organise les attributs de données (attributs) et les méthodes -Les méthodes sont ajoutées à la classe en utilisant le mot-clé def, tout comme les fonctions. -La méthode doit toujours avoir "self" comme premier argument -La substance de la méthode d'initialisation est une méthode nommée init
Un framework d'application Web implémenté en Python. Un framework qui hérite de l'architecture MVC (Model-view-Controll).
Django réduit la quantité de code et facilite la création de sites Web complexes centrés sur les bases de données.
https://django-docs-ja.readthedocs.org/
pip install django
-Un projet est un package Python qui contient tous les paramètres d'une instance Django. ・ Créez un site Web en un seul projet. -Créer et placer une nouvelle application spécifique au projet dans le projet -Dispose de paramètres pour chaque site Web (paramètres de base de données, paramètres d'option Django, paramètres pour chaque application, etc.).
En exécutant "start project", le répertoire du projet (myprj) et Le fichier initial est créé
django-admin startproject myprj
・ Myprj/
· Gérer.py
・ Myprj
・__init__.py
· Réglages.py
・ URL.py
・ Wsgi.py
Le contenu n'est qu'un package Python. Peu importe où PYTHON va.
Lors de la création d'un répertoire de sondages et des fichiers initiaux
cd myprj
python manage.py startapp polls
Django propose un mappeur O / R. Vous pouvez écrire une mise en page de base de données en code Python.
Chaque modèle est une classe Python qui hérite de la classe django.db.models.Model et correspond à une table de la base de données.
・ Modèle d'URL écrit en expression régulière -Ecrire dans le module "URLconf" qui définit le mappage des fonctions Python. (Peut être divisé pour chaque application) (En définissant l'URL avec un nom, vous pouvez faire référence à l'URL par ce nom à partir du code ou du modèle.)
Fonction qui renvoie une réponse HTTP · Objet HttpResponse pour la page demandée · Exceptions comme Http404
Une fonction d'affichage typique est
http://django-docs-ja.readthedocs.org/en/latest/contents.html
Recommended Posts