zoukankan      html  css  js  c++  java
  • Python类与对象

    1. 调用类方法:
      class Fruit:
          def __init__(self):
              self.__color="rad"
      if __name__ == "__main__":
         apple=Fruit()
         print(apple._Fruit__color
    2. self有无的问题(指的是对象本身)
    3. 所以,从静态方法的使用中可以看出,我们不会访问到 class 本身 – 它基本上只是一个函数,在语法上就像一个方法一样,但是没有访问对象和它的内部(字段和其他方法),相反 classmethod 会访问 cls, instancemethod 会访问 self。
    4. _init__()是python的一个构造方法,在定义类时,用于初始化的一些操作;它能实现的功能及原理相对来讲也是比较简单一点,就是在实例化该类时,自动执行__init__()方法定义的内容;但是注意__init__()一般不用户返回return;
    5. __call__()方法能够让类的实例对象,像函数一样被调用;
      >>> 
      >>> class A(object):
          def __call__(self, x):
              print '__call__ called, print x: ', x
      
              
      >>> 
      >>> a = A()
      >>> a('123')
      __call__ called, print x:  123
      >>>

      看a('123')这是函数的调用方法,这里a实际上是类对象A的实例对象,实例对象能想函数一样传参并被调用,就是__call__()方法的功能;

    6. 如果__new__()和__init__()函数时类的构造函数(即在类实例化时自动执行函数中定义的内容),那么__del__()是类的析构函数,是python垃圾回收机制的实际应用,当类的所有引用都被删除后,该类就会被系统从内存中删除,注意是所有的引用都被删除哦,而不是每一次删除;将D()实例化对象赋值给d,后d2,d3都是指向D()的这次实例化对象,删除d和d2的引用都不会触发__del__()函数,最后一个d3的引用被删除,就会触发__del__(),此时D()的这一次实例化的对象就被清除;
    7. list1.append(Geese)即可连续创建类的对象
    8. 定义空函数用pass代替未完成代码
    9. 所以,if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
    10. 内部类的调用
      class MyOuter:
          age=18
          def __init__(self,name):
              self.name=name
          @classmethod
          def outer_class_method(cls):
              print('我是外部类的类方法')
      
          class MyInner:
              def __init__(self,inner_name):
                  self.inner_name=inner_name
              def inner_method(self):
                  print('我是内部类的对象方法')
                  MyOuter.outer_class_method()
      
      out=MyOuter('lqz')
      inner=out.MyInner('lqz_inner')
      inner.inner_method()
    11. Python的format函数使用详解                     https://blog.csdn.net/it_python/article/details/81037078
  • 相关阅读:
    模拟博客园系统
    神经网络的数据表示
    第一个神经网络简洁示例
    python10——正则表达式
    python09——垃圾回收机制
    python08——文件操作与模块
    python实践——飞机大战
    python07——面向对象基础(3)
    python06——面向对象基础(2)
    python05——面向对象基础(1)
  • 原文地址:https://www.cnblogs.com/ybl20000418/p/11482520.html
Copyright © 2011-2022 走看看