Heim  >  Artikel  >  Backend-Entwicklung  >  Python Tag 33 – Statische Methoden, Klassenmethoden, Attributmethoden

Python Tag 33 – Statische Methoden, Klassenmethoden, Attributmethoden

PHP中文网
PHP中文网Original
2017-06-19 10:44:081096Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn