Es ist ein Memorandum, das ich gemäß Referenzen gelernt habe, um Python so gut wie möglich lesen zu können. Ich habe die Punkte zusammengefasst, an denen ich interessiert war, und die Punkte, die ich im Vergleich zu Java nützlich fand. Teil 1 ist hier Teil 2 ist hier * Dies ist ein ziemlich grundlegender Inhalt. </ strong>
Das Konzept der Klasse selbst ist nicht so unterschiedlich. Ein Beispiel zum Definieren einer Klasse finden Sie unten.
java
class SampleClass {
//Klassenverarbeitung
}
python
class SampleClass:
#Klassenverarbeitung
Instanziieren Sie eine Klasse. Die Handhabung ist fast die gleiche wie bei Java. ~~ Sollte ~~
java
SampleClass sClass = new SampleClass();
python
sClass = SampleClass()
Es ist wie eine Instanzvariable in Java (?). Sie können der Instanz Attribute hinzufügen.
python
sClass.attr = "Atori Byuto"
print(sClass.attr)
>>Atori Byuto
Wenn Sie einer Klassenmethode ein Argument hinzufügen, fügen Sie dem ersten Argument self hinzu.
Self kann verwendet werden, um die Instanz selbst zu manipulieren
java
class SampleClass {
int counter = 0;
int count(int a) {
counter += a;
}
}
python
class SampleClass:
counter = 0;
def count(self, a):
self.counter += a
Die Initialisierungsmethode verwendet __init__
(spezielle Methode).
java
publiv class Human {
String name;
String birthday;
public Human(String name, String birthday) {
this.name = name;
this.birthday = birthday;
}
}
python
class Human:
def __init__(self, name = None, birthday = None):
self.__name = name
self.__birthday = birthday
Präfixmethoden und Attribute mit __
(zwei Unterstriche) zur Kapselung.
Der Zugriff von außen kann durch Hinzufügen von "__" verhindert werden.
Wenn Sie einer Methode oder einem Attribut "_" voranstellen (ein Unterstrich)
Es hat die Bedeutung von "Nicht von außen zugreifen, da es nur innerhalb der Klasse verwendet wird" (es scheint).
Addition </ strong> ~~ Es scheint, dass Getter und Setter in Python nicht definiert sind. ~~ Es wird anscheinend nicht empfohlen, Methoden wie get〇〇 und set〇〇 in Python zu definieren. (Der Zugriff auf die Attribute kann separat zusammengefasst werden.) In diesem Artikel werden Getter und Setter wie oben definiert definiert, um Ihnen das Verständnis im Vergleich zu Java zu erleichtern. Bitte beachten Sie. Wenn Sie keine Unterstriche, Getter und Setter definieren, denke ich daran, separat zu lernen und sie zusammenzufassen.
java
publiv class Human {
private String name;
private String birthday;
public Human(String name, String birthday) {
this.name = name;
this.birthday = birthday;
}
public getName() {
return this.name;
}
public getBirthday() {
return this.birthday;
}
public setName(String name) {
this.name = name;
}
public setBirthday(String birthday) {
this.birthday = birthday;
}
}
python
class Human:
def __init__(self, name = None, birthday = None):
self.__name = name
self.__birthday = birthday
def getName(self):
return self.__name
def getBirthday(self):
return self.__birthday
def setName(self, name):
self.__name = name
def setBirthday(self, birthday):
self.__birthday = birthday
Python ist mehrfach vererbbar </ strong>.
Geben Sie bei Mehrfachvererbung die Klassennamen an, die durch ,
getrennt sind.
java
public class SuperMan extends Human {
private String ability;
public getAbility() {
return this.age;
}
public setAbility(String ability) {
this.ability = ability;
}
python
class SuperMan(Human): #Für Mehrfachvererbung SuperMan(Human, Man)Definieren Sie wie
def getAbility(self):
return self.__ability
def setAbility(self, ability = None):
self.__ability = ability
Spezielle Methoden, die das Hinzufügen von Attributen einschränken können
__slots__ = [Attributname 1, Attributname 2, ...]
Verbessern Sie die Effizienz der Speichernutzung
python
class Profile:
__slots__ = ['height', 'weight', 'bloodType']
def __init__(self, bloodType = None):
self.bloodType = bloodType
a = Profile('A')
print(a.bloodType)
>>A
#In Slots definierte Attribute
a.height = 170
a.weight = 60
a.constellation = 'Aries'
>>Ein Fehler tritt auf
Eingebaute Funktion zur einfachen Definition von Getter und Setter.
Kontrollieren Sie einfach den Zugriff auf private Attribute.
Eigenschaft (Name der Getter-Methode, [Name der Setter-Methode])
python
class Human:
def __init__(self, name = None):
self.__name = name
def getName(self):
return self.__name
def setName(self, name):
self.__name = name
propName = property(getName, setName)
#Wenn eine Ersetzung durchgeführt wird, funktioniert der in der Eigenschaft festgelegte Setter.
propName = 'takeshi'
#Beim Abrufen funktioniert der in der Eigenschaft festgelegte Setter
print(propName)
>>takeshi
Als ich mich mit den Nachteilen von Python befasste, stellte ich fest, dass die Ausführung langsam war. Ich war der Meinung, dass die diesmal zusammengefassten "slots" notwendig sind, um die Nachteile zu verbessern. Ich möchte mein Verständnis erweitern, damit ich Python-ähnliche Funktionen richtig verwenden kann.
Referenz </ strong> Atsushi Shibata (2016) "Minna no Python 4. Auflage" SB Creative Co., Ltd.
Offizielle Referenz </ strong> Offizielle Python-Referenz
Informationen zu Datentypen </ strong> Klassifizierungstabelle der integrierten Datentypen von Python (veränderbar usw.)
Über Unterstrich </ strong> Python-Kurs für Anfänger, objektorientierte Version 7 gekapselt Lektion 12 Klassendefinition - Einführung in die Python-Grundgrammatik Python Underbar, das ist es nicht
Recommended Posts