Ich versuche verschiedene Dinge zu verstehen, Dekoratoren und Funktionen in Python. Ist der Code unten richtige Art und Weise:Gebundene Funktionen und Dekoratoren in Python
import math
def calculate_area(func):
def area(a,b):
return a+b
return area
class Donut():
def __init__(self, outer, inner):
self.inner = inner
self.outer = outer
@calculate_area
@staticmethod
def area(self):
outer, inner = self.radius, self.inner
return Circle(outer).area() - Circle(inner).area()
Will „staticmenthod“ Dekorateur der eingebaute Typ (die Klasse einer Klasse, siehe diese Frage) default metaclass Tells nicht gebundene Methoden zu erstellen? ist es möglich, zu tun:
Donut.area(4,5)
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
Donut.area(4,5)
TypeError: unbound method area() must be called with Donut instance as first argument (got int instance instead)
Bitte helfen Sie mir zu verstehen gebunden Methoden und ungebundene Methoden und was es die Auswirkungen des Dekorateur auf sich.
Eine Erklärung, warum dies funktioniert und Code des OP ist nicht schön. – delnan
gerade bearbeitet, siehe Edits – pylover
Danke für die Antwort und mich verstehen zu lassen. Ich habe nur 1 Frage: bedeutet _ in _area() etwas bestimmtes? –