Heim > Artikel > Backend-Entwicklung > Python Tag 33 – Statische Methoden, Klassenmethoden, Attributmethoden
Nach der @staticmethod-Dekoration werden die Methoden in der Klasse in statische Methoden konvertiert
<span style="color: #008080">1</span> <span style="color: #0000ff">class</span><span style="color: #000000"> a: </span><span style="color: #008080">2</span> <span style="color: #008080">3</span> <span style="color: #000000"> @staticmethod </span><span style="color: #008080">4</span> <span style="color: #0000ff">def</span><span style="color: #000000"> b(self): </span><span style="color: #008080">5</span> <span style="color: #0000ff">print</span>(<span style="color: #800000">''</span>)
Statische Methoden können nicht auf Instanzvariablen oder Klassenvariablen zugreifen, die Toolkits in Klassen entsprechen. Beispielsweise sind Betriebssystem-, System- und andere importierte Module im Allgemeinen
Nach der @classmethod-Dekoration werden die Methoden in der Klasse in Klassenmethoden umgewandelt. Der Unterschied zwischen Klassenmethoden und gewöhnlichen Methoden besteht darin, dass Klassenmethoden nur auf Klassenvariablen und nicht auf Instanzvariablen zugreifen können
<span style="color: #008080">1</span> <span style="color: #0000ff">class</span><span style="color: #000000"> b(object): </span><span style="color: #008080">2</span> name=<span style="color: #800000">'</span><span style="color: #800000">aa</span><span style="color: #800000">'</span> <span style="color: #008080">3</span> <span style="color: #000000"> @classmethod </span><span style="color: #008080">4</span> <span style="color: #0000ff">def</span><span style="color: #000000"> cc(self): </span><span style="color: #008080">5</span> <span style="color: #0000ff">print</span>(<span style="color: #800000">'</span><span style="color: #800000">%s .l.....</span><span style="color: #800000">'</span>%<span style="color: #000000">name) </span><span style="color: #008080">6</span> <span style="color: #008080">7</span> <span style="color: #008080">8</span> <span style="color: #008080">9</span> b.cc()
Konvertieren Sie nach der @property-Dekoration die Methoden in der Klasse in statische Eigenschaften
So verwenden Sie statische Attribute
<span style="color: #008080"> 1</span> <span style="color: #0000ff">class</span><span style="color: #000000"> Eat_food(object): </span><span style="color: #008080"> 2</span> self.<span style="color: #800080">__food</span>=None<span style="color: #008000">#</span><span style="color: #008000">设置一个私有属性</span> <span style="color: #008080"> 3</span> <span style="color: #008080"> 4</span> <span style="color: #000000"> @property </span><span style="color: #008080"> 5</span> <span style="color: #0000ff">def</span><span style="color: #000000"> eat(self): </span><span style="color: #008080"> 6</span> <span style="color: #0000ff">print</span>(<span style="color: #800000">'</span><span style="color: #800000">.....%s</span><span style="color: #800000">'</span>%self.<span style="color: #800080">__food</span><span style="color: #000000">) </span><span style="color: #008080"> 7</span> <span style="color: #008080"> 8</span> @eat.setter <span style="color: #008000">#</span><span style="color: #008000">再次装饰后可以对其赋值</span> <span style="color: #008080"> 9</span> <span style="color: #0000ff">def</span><span style="color: #000000"> eat(self,food): </span><span style="color: #008080">10</span> <span style="color: #0000ff">print</span>(<span style="color: #800000">'</span><span style="color: #800000">.....%s</span><span style="color: #800000">'</span>%<span style="color: #000000">food) </span><span style="color: #008080">11</span> self.<span style="color: #800080">__food</span>=food<span style="color: #008000">#</span><span style="color: #008000">保存到私有属性,备用</span> <span style="color: #008080">12</span> <span style="color: #008080">13</span> <span style="color: #000000"> @eat.deleter </span><span style="color: #008080">14</span> <span style="color: #0000ff">def</span><span style="color: #000000"> eat(self): </span><span style="color: #008080">15</span> <span style="color: #0000ff">del</span> self.<span style="color: #800080">__food</span><span style="color: #008000">#</span><span style="color: #008000">删除保存赋值的私有属性,相当于删除这个属性方法</span>
Das obige ist der detaillierte Inhalt vonPython Tag 33 – Statische Methoden, Klassenmethoden, Attributmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!