https://nktmemo.wordpress.com/2014/01/05/画像のurlを受け取りbase64テキストに変換する(python)/
[Beispiel: Würfeltyp mit nur Namen, der keine Funktion hat]
>>> class Dice:
... pass
...
[Instanz aufrufen]
>>> sai = Dice()
Wenn kein Fehler auftritt, wurde ein neuer Würfeltyp vorbereitet und der Variablen sai zugewiesen.
Die Art wird durch das Attribut (Attribut) bestimmt, Erstellen Sie Funktionen mit Methoden.
Beispiel) Würfel ・ Eigenschaften: 6 Gesichter und Zahlen eingraviert ・ Sie können eine Zahl würfeln und entscheiden
[Datentyp] -Eine Sammlung einfacherer Datenattribute (Attribute) und Funktionen (Methoden). "Attribut" und "Methode" Wie ist das Der Mechanismus (Entwurfszeichnung), der die Klasse bestimmt, ist das Konzept der Klasse.
Klasse ist eine Konstruktionszeichnung vom Datentyp
Erstellen Sie einen neuen Datentyp mit dem Schlüsselwort class
Fügen Sie dem Würfeltyp ein Datenattribut hinzu, das die Anzahl der Würfelflächen ausdrückt.
>>> class Dice:
... face_num = 6
...
>>>
>>> sai = Dice()
>>> sai.face_num
6
Dem Würfeltyp wurde ein neues Datenattribut, face_num, hinzugefügt. Sie können sehen, dass 6 gespeichert ist.
[Eine Funktion, die zufällig eine Zahl von 1 bis 6 zurückgibt]
>>> import random
>>>
>>> def shoot():
... return random.randint(1,6)
...
Wenn Sie diese Funktion so wie sie ist in die Klasse einfügen, funktioniert sie nicht als Methode.
Was sollen wir dann tun?
--Methode erfordert "self" als erstes Argument
・ "Selbst", das ein Argument schreiben muss
sample.py
Als Modul zusammenstellen
>>> import random
>>>
>>> class Dice:
... face_num = 6
... def shoot(self):
... return random.randint(1,6)
...
>>> sai = Dice()
>>> sai.shoot()
5
face_num = 6 wird nicht verwendet Zum Beispiel
※Error
err.py
>>> import random
>>>
>>> class Dice:
... face_num = 6
... def shoot(self):
... return random.randint(1,face_num)
...
Dies führt zu einem Fehler. face_num = 6 Sie können die externen Variablen nicht innerhalb der Methode sehen. Es wird entschieden, dass die in der Funktion verwendeten Daten als Argument übergeben werden
face_num ist ein Datenattribut, das der Würfeltyp für sich hat Es ist mühsam, sich die Mühe zu machen, es als Argument an die Methode zu übergeben. Wenn die Anzahl der Datenattribute zunimmt, nimmt die Anzahl der Methodenargumente zu, was schwierig wird.
Bei der Vorbereitung einer Instanz wissen wir nicht, welchen Variablennamen der Benutzer zuweisen wird. Es wird beschlossen, die Instanz im ersten Argument der Methode "self" zu nennen, damit eine Instanz vom Typ Dice mit einem beliebigen Namen erstellt werden kann.
sample.py
>>> class Dice:
... face_num = 6
... def shoot(self):
... return random.randint(1,self.face_num)
...
Als ich die Funktion erstellt habe, konnte ich die Variablen außerhalb der Funktion sehen, aber warum ist das Gesicht hier direkt daneben?_Kannst du num nicht sehen?
Der Bereich, aus dem auf die Variable verwiesen werden kann, wird durch den definierten Ort bestimmt.
Umfang.
Was Sie sehen können, wo Sie sind Nur "eingebauter Bereich" und "Modulbereich", zu denen Sie gehören.
import random
random.randint(1,10)
Wenn Sie ihm den Namen so zufällig geben, können Sie sich darauf beziehen. Es heißt "Namensraum".
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)
Bei der Vorbereitung einer Instanz mit einem anderen Datentyp als dem integrierten Datentyp musste die Initialisierungsmethode aufgerufen werden. Da der erstellte Würfeltyp kein integrierter Datentyp ist, habe ich ihn wie folgt geschrieben.
sai = dice. Dice()
Ich mache es immer so. Dies ruft eine Initialisierungsmethode ohne Argumente auf. Wenn Sie mit der Klasse einen "neuen Datentyp" erstellen, stellt Python automatisch eine Initialisierungsmethode ohne Argumente bereit. Was ist, wenn ich das Verhalten dieser Initialisierungsmethode ändern möchte?
Der tatsächliche Name der Initialisierungsmethode init
[Komplett]
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
Beim Aufrufen der Initialisierungsmethode, damit verschiedene Würfeltypen mit dem Würfeltyp realisiert werden können 4, 6, 8, 12, 20 mit Argumenten Geben Sie eine der ganzen Zahlen von an In der Lage sein, die Form der Würfel zu bestimmen.
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)
Wenn kein Argument angegeben wird, tritt ein Fehler auf
Legen Sie den Standardwert des Arguments val in dice2.py fest
import random
class Dice:
def __init__(self,val=6):
self.face_num = val
def shoot(self):
return random.randint(1,self.face_num)
Es gibt nur 5 Arten von regulären Tetraedern, aber der aktuelle Würfeltyp ist ein Argument der Initialisierungsmethode. Jeder Wert wird angegeben. Deshalb, Überprüfen Sie das Argument mit der Initialisierungsmethode und geben Sie einen Fehler aus, wenn dies nicht möglich ist.
Ob das Argument eine bestimmte Zahl ist oder nicht, wird anhand des Schlüsselworts in und einer Liste beurteilt.
>>> 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("Es gibt kein solches Polyeder.")
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("Es gibt kein solches Polyeder")
print("Es gibt kein solches Polyeder")
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,Welche der 20 wirst du spielen?:")
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) + "Sie"+ str(my_pip))
if my_pip > cpu_pip:
print("Herzliche Glückwünsche. Du gewinnst")
elif my_pip < cpu_pip:
print("Es tut uns leid!Du verlierst")
else:
print("Es ist eine Zeichnung")
-Datentyp besteht aus Datenattributen und Methoden ・ Um einen neuen Datentyp zu erstellen, erstellen Sie eine Klasse, die als Konstruktionszeichnung dient. ・ Klasse organisiert Datenattribute (Attribute) und Methoden -Methoden werden der Klasse mit dem Schlüsselwort def hinzugefügt, genau wie Funktionen. -Die Methode muss immer "self" als erstes Argument haben -Der Inhalt der Initialisierungsmethode ist eine Methode namens init
Ein in Python implementiertes Webanwendungsframework. Ein Framework, das die MVC-Architektur (Model-View-Controll) erbt.
Django reduziert die Menge an Code und erleichtert das Erstellen komplexer datenbankzentrierter Websites.
https://django-docs-ja.readthedocs.org/
pip install django
-Ein Projekt ist ein Python-Paket, das alle Einstellungen einer Django-Instanz enthält. ・ Erstellen Sie eine Website als ein Projekt.
Durch Ausführen von "Projekt starten" wird das Projektverzeichnis (myprj) und Die erste Datei wird erstellt
django-admin startproject myprj
・ Myprj/
· Verwalten.py
・ Myprj
・__init__.py
· Die Einstellungen.py
・ Urls.py
・ Wsgi.py
Der Inhalt ist nur ein Python-Paket. Es ist egal, wohin PYTHON geht.
Beim Erstellen eines Abstimmungsverzeichnisses und von Anfangsdateien
cd myprj
python manage.py startapp polls
Django bietet einen O / R-Mapper an. Sie können ein Datenbanklayout in Python-Code schreiben.
Jedes Modell ist eine Python-Klasse, die die Klasse django.db.models.Model erbt und einer Tabelle in der Datenbank entspricht.
・ URL-Muster in regulären Ausdrücken geschrieben -Schreiben Sie in das Modul "URLconf", das die Zuordnung von Python-Funktionen definiert. (Kann für jede Anwendung geteilt werden) (Indem Sie die URL mit einem Namen definieren, können Sie aus dem Code oder der Vorlage auf die URL mit diesem Namen verweisen.)
Funktion, die eine HTTP-Antwort zurückgibt · HttpResponse-Objekt für die angeforderte Seite · Ausnahmen wie Http404
Eine typische Ansichtsfunktion ist
http://django-docs-ja.readthedocs.org/en/latest/contents.html
Recommended Posts