Python学习教程:面向对象学习实力讲解

  

  

  类猫:

  

“““猫科动物类“““

  

标记=& # 39;我是家猫& # 39;   

  

def __init__(自我、名字、年龄=0):#没有默认值必须要传,且写在前面   

  

self.name=名字   

自我。__age=年龄#私有变量,外部不能引用设置更改   

  

def set_age(自我、年龄):

  

self.__age=年龄   

self.__age返回   

  

def show_info(自我):

  

其他=拔医?{0},今年{1}岁“.format (self.name self.__age)

  

打印(rest)

  

返回休息   

def吃(自我):

  

打印(& # 39;喜欢吃鱼& # 39;)

  

def捕捉(自我):

  

打印(& # 39;喜欢抓老鼠& # 39;)   

  

实例化   

if __name__==& # 39; __main__ # 39;:

  

cat_black=猫(& # 39;小黑& # 39;(2)

  

cat_black.eat ()   

cat_black.show_info ()   

类的实例判断:isinstance (cat_black、猫)

      Python学习教程:面向对象学习实力讲解”>
  
  <p>
  </p>
  <p>判断是否为其子类:issubclass(狗,动物)</p>
  <p>调用父类的方法:</p>
  <p> def吃(自我):</p>
  通过<p>超级(Cat) .eat () </p>
  <p>
  </p>
  <p>一个类继承于多个类</p>
  <p>如果两个父类有相同重名的方法,调用前一个</p>
  <p>大括号的转义字符是两个{{</p>
  <p>
  </p>
  <p>每天无需知道对象是什么样的就能对其执行操作时,都是多态起作用。</p>
  <p> super () .eat()直接调用父类</p>
  <p>类的高级特性</p>
  <p>
  </p>
  <p> def __str__(自我):</p>
  <p>返回showing_info () </p>
  <p> @ property写在方法的前面(描述符)</p>
  <p>
  </p>
  <p>为指定的类设置一个静态属性列表</p>
  <p>为属性很少的类节约内存空间</p>
  <p>使用后不能给实例添加属性和方法。</p>
  <p>
  </p>
  <p> @staticmethod表示静态方法不需要对类实例化调用,可以直接通过类名调用</p>
  <p> @classmethod表示类的方法,
  <br/> </p>
  <p> def show_info (cls) cls代表类自我代表实例</p><h2 class=Python学习教程:面向对象学习实力讲解