Python-- von Grunde auf objektorientierte Entwicklung 3 zu lernen

Python-- von Grunde auf objektorientierte Entwicklung 3 zu lernen

Taiyuan University of Technology Robotics-Team 20 Lochkarte 11.Tag

1, Klasse Methoden und Klassenattribute

1.1 ist eine spezielle Klasse von Objekten

Python in alles ein Objekt:

  • Klasse AAA: definierte Kategorie gehört zu der Klasse Objekt
  • obj1 = AAA () zu dem den zugehörigen Instanz - Objekt
  • Das Programm läuft, geben Sie das gleiche wird in den Speicher geladen werden ,
  • In Python, die Klasse ist ein spezielles Objekt - Klassenobjekt
  • Das Programm läuft, das Klassen - Objekt im Speicher, nur eine , die Verwendung einer Klasse kann erstellen eine Reihe von Objektinstanzen
  • Zusätzlich zu dem Paket Beispiele von Attributen äußeren und Methoden, Klassenobjekte können auch ihre eigenen Attribute und Methoden
    1. Klasseneigenschaften
    2. Klassenmethoden
  • Mit dem Klassennamen . Die Art und Weise können Sie Zugriffsklasse Attribut oder Methode ruft die Klasse

1.2 Instanzattribute und Klassenattribute

  • Klassenattribut ist ein Klassenobjekt definiert Attribute
  • Es wird allgemein aufzeichnen verwendet relevant zu dieser Klasse Feature
  • Class - Attribut für nicht Aufzeichnung Eigenschaften des jeweiligen Objekts

Beispiel: Um die Anzahl der Objekte dieser Klasse aufnehmen

class Tool(object):

	# 使用赋值语句,定义类属性,记录创建工具对象的总数
	count = 0

	def __init__(self, name):
		self.name = name
		
		# 针对类属性做一个计数+1
		Tool.count += 1

# 创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("榔头")
tool3 = Tool("铁锹")

# 知道使用 Tool 类到底创建了多少个对象?
print("现在创建了 %d 个工具" % Tool.count)

1.3 Klassenmethoden und statische Methoden

  • Class - Eigenschaft , die für die ist das Klassenobjekt Attributdefinitionen
    • Verwendung Zuweisungsanweisungen unter der Klasse Schlüsselwort zu definieren , ein Klassenattribut
    • Class - Attribut für die Aufnahme in diese Klasse relevantes Merkmal
  • Klassenmethode ist für das Klassenobjekt definierte Methode
    • In der Klassenmethode innerhalb können die direkten Zugriff auf Klasseneigenschaften oder invoke anderen Klassenmethoden

die Syntax

@classmethod
def 类方法名(cls):
	pass
  • Klassenmethode erfordert ein Dekorateur @classmethod identifiziert werden, sagte der Interpreter Dies ist eine Methode der Klasse
  • Klassenmethode erster Parameter soll cls sein
    • Von welcher Klasse Call - Methode, cls in der Art und Weise ist eine Referenzklasse , das
    • Dieser Parameter und das beispielhafte Verfahren von dem ersten Parameter ist eine ähnliche Selbst
    • Tipp ein anderer Name sein kann, aber die Gewohnheit, cls mit
  • Durch die Klassennamen. Invoke Klassenmethode , beim Aufruf der Methode , müssen Parameter cls passieren
  • Innerhalb einer Methode
  • Durch cls. Attribut Zugriffsklasse
  • Sie können auch cls. Aufrufen von anderen Methoden der Klasse

Beispiele verlangen

  • Definieren Sie ein Werkzeug
  • Jedes Werkzeug hat seinen eigenen Namen
  • Die Nachfrage in - Klasse Nummer der Objektklasse des Verfahrens wird ein show_tool_count der Verpackung, um den Ausgangsstrom dieser Klasse verwendet wird , geschaffen
@classmethod
def show_tool_count(cls):
	"""显示工具对象的总数"""
	print("工具对象的总数 %d" % cls.count)

Innerhalb der Klassenmethoden können direkt Zugang cls verwendet werden Klasseneigenschaften oder eine Klasse - Methode aufrufen

1.4 statische Methode

  • Bei der Entwicklung, wenn in der gewünschten Klasse kapselt ein Verfahren , das:
    • Nicht nur nicht brauchen , um Zugriff auf eine Instanz Eigenschaft oder rufen Instanzmethode
    • Auch brauchen Sie nicht auf die Zugriff auf Klasseneigenschaften oder durch den Aufruf der Klassenmethode
  • Diese Zeit kann dieses Verfahren als eine verpackt werden statische Methode

die Syntax

@staticmethod
def 静态方法名():
	pass
  • Statische Methoden benötigt decorator @staticmethod identifiziert werden, sagte der Interpreter diese eine statische Methode ist
  • Durch die Klassennamen. Rufen Sie die statische Methode
class Dog(object):
	
	# 狗对象计数
	dog_count = 0

	@staticmethod
	def run():

		# 不需要访问实例属性也不需要访问类属性的方法
		print("狗在跑...")
	
	def __init__(self, name):
		self.name = name

2, abnormal

  • Programm zur Laufzeit, wenn das Python - Interpreter trifft einen Fehler, Ausführung Stop - Programms, und Aufforderungen einiger falschen Informationen, die nicht normal ist
  • Das Programm stoppt die Ausführung und eine Fehlermeldung diese Aktion, rufen wir in der Regel: throw (raise) abnormal

2.1 fangen die Ausnahme

  • Programmentwicklung, wenn die Ausführung von Code nicht korrekt bestimmt werden , kann die Try (Versuch) erhöhen , um die Ausnahme abfangen
  • Fangen Ausnahmen einfachste Syntax:
try:
	尝试执行的代码
except:
	出现错误的处理
  • versuchen , versuchen , versuchen , den Code unten, unsicher zu schreiben , ob der Code normal ausgeführt werden
  • ausnehmen , wenn nicht , Schreibcode unten Versuch fehlschlägt

Die Art des Fehlers Trapping

  • Während der Programmausführung, beim Betrieb auftreten kannst verschiedene Arten von Ausnahmen , und die Notwendigkeit , für verschiedene Arten von Ausnahmen , reagiert unterschiedlich , diesmal müssen wir die Art des Fehlers erfassen
  • Die Syntax lautet wie folgt:
try:
	# 尝试执行的代码
	pass
except 错误类型1:
	# 针对错误类型1,对应的代码处理
	pass
except (错误类型2, 错误类型3):
	# 针对错误类型2 和 3,对应的代码处理
	pass
except Exception as result:
	print("未知错误 %s" % result)
  • Wenn das Python - Interpreter eine Ausnahme auslöst , das erste Wort in der letzten Zeile der Fehlermeldung, Typ falsch ist

Erfassung unbekannter Fehler

  • Bei der Entwicklung, alle möglichen Fehler zu antizipieren , oder haben einige Schwierigkeiten
  • Wenn Sie das Programm wollen ein Fehler unabhängig auftritt , wird nicht , weil Python - Interpreter eine Ausnahme wirft beendet wurde , können Sie eine weitere hinzufügen , außer

Die Syntax lautet wie folgt:

except Exception as result:
	print("未知错误 %s" % result)

Abnormal erfassen die vollständige Syntax

  • Bei der tatsächlichen Entwicklung, um mit komplexen Anomalien umgehen zu können, abnormal vollständige Syntax lautet wie folgt:

Tipps:

  • Für die vollständige Syntax von Szenarien in der Follow-up-Studie mit konkreten Fällen kombiniert wird besser verstanden,
  • Jetzt gibt es einen ersten Eindruck zu dieser grammatikalischen Struktur
try:
	# 尝试执行的代码
	pass
except 错误类型1:
	# 针对错误类型1,对应的代码处理
	pass
except 错误类型2:
	# 针对错误类型2,对应的代码处理
	pass
except (错误类型3, 错误类型4):
	# 针对错误类型3 和 4,对应的代码处理
	pass
except Exception as result:
	# 打印错误信息
	print(result)
else:
	# 没有异常才会执行的代码
	pass
finally:
	# 无论是否有异常,都会执行的代码
	print("无论是否有异常,都会执行的代码")
  • nur Code sonst wenn es wird keine Abnormalität ausgeführt
  • schließlich, ob es eine Ausnahme-Code, der ausgeführt wird
  • Vor der Ausübung eines vollständigen Erfassung abnormaler Code ist wie folgt
try:
	num = int(input("请输入整数:"))
	result = 8 / num
	print(result)
except ValueError:
	print("请输入正确的整数")
except ZeroDivisionError:
	print("除 0 错误")
except Exception as result:
	print("未知错误 %s" % result)
else:
	print("正常执行")
finally:
	print("执行完成,但是不保证正确")

2.2 anomale Übertragung

  • Anomale Übertragung - wenn die Funktion / Methode Ausführung Ausnahme auftritt , wird es die Ausnahme übergeben an die Funktion / Methode Gesprächspartner
  • Wenn der Transfer in das Hauptprogramm , noch keinen Exception - Handler , wird das Programm beendet

Prompt

  • In der Entwicklung kann in der Hauptfunktion erhöhen Anomalien capture
  • Die anderen Funktionsaufrufe in der Hauptfunktion, solange die abnormal, wird zu den wichtigsten Funktion übergeben werden Anomalien erfasst in
  • Dadurch entfällt die Notwendigkeit , in dem Code , um die Anzahl der zu erhöhen Ausnahme Fallen , sauberen Code , um sicherzustellen ,

Nachfrage

  1. Die demo1 definierte Funktion () fordert den Benutzer auf und gibt eine ganze Zahl
  2. Definierte Funktionen demo2 () Aufruf demo1 ()
  3. Demo2 Anruf in der main ()
def demo1():
	return int(input("请输入一个整数:"))

def demo2():
	return demo1()

try:
	print(demo2())
except ValueError:
	print("请输入正确的整数")
except Exception as result:
	print("未知错误 %s" % result)

2.3 löst eine Ausnahme aus,

  • In Entwicklung, zusätzlich zu Codeausführung Fehler Python - Interpreter führt als eine Ausnahme
  • Sie können auch die Initiative ergreifen , eine Ausnahme anwendungsspezifische Geschäftsanforderungen zu werfen

Werfen Sie eine Ausnahme

  • Python ist eine Ausnahmeklasse Ausnahme vorgesehen
  • Bei der Entwicklung, wenn erfüllen spezifische Geschäftsanforderungen, hoffen wir, eine Ausnahme zu werfen, können Sie:
    1. Erstellen Sie ein Objekt von Ausnahme
    2. Benutze das Stichwort raise geworfen Objekte
Veröffentlicht 12 Original - Artikel · erntet Lob 51 · Ansichten 10000 +

Ich denke du magst

Origin blog.csdn.net/soul_study/article/details/104766857
Empfohlen
Rangfolge