面向对象编程class

mac2022-06-30  96

****类**** 一个种类,一个模型。汽车模型

class Person: #经典类 pass

class Person2(object): #新式类 pass

 

****对象**** 指具体的东西,模型造出来的东西叫做对象。

  self 代表的是本类对象;也就是实例化之后的值;

  self 的内存地址 与 实例化对象的内存地址 一致

  self代表的是本类对象。

  因为函数里面的变量都是局部变量,出了函数就不能用了。

  用self给对象绑定了之后,就可以self.xx随便用了

****实例**** 实例和对象是一样的。

****实例化**** 实例化就是造东西的这个过程。

  class Person():

  Person()  ------  # 这就是实例化

****属性**** 就是变量

****方法**** 就是类里面的函数

  class Person():

    def face()  ------  #这个就是方法

***继承***

  就是一个类继承另一个类的所有东西

  如 class Person1()

   class Person2(Person1)  ------  Person2 继承了 Person1;实例化 Person2后可以直接调用直接调用 Person1 里面的变量和方法

***封装***

  将多个自带功能组合成一个新的功能,供后续调用

***多态***

 

注:【self】代表的是本类对象。   因为函数里面的变量都是局部变量,出了函数就不能用了。   用self给对象绑定了之后,就可以self.xx随便用了

 

【构造函数】   def __init__():     pass   构造函数就是类在实例化的时候执行的函数。   类在实例化的时候,会自动执行它

 

【析构函数】   def __del__():     pass   实例被销毁的时候执行的。(即在运行最后一行代码后会自动执行的代码;用作于实例销毁)

 

*************************************************************************************************************************************************

 

***属性方法*** 看起来像属性的一个方法。

  @property   #装饰器

  引用的时候,后面紧跟的def hhh(self) 定义的变量,调用时时不能跟(),调用的结果时函数的返回值

  前提条件:函数不能有参数

***类变量*** 类变量,公共的变量,每个实例都可以用

  直接定义的变量

  class Person():

    cou ='china'  #类变量;调用方法:Person.cou

    def __init__(self):

      ......

    ......

***实例变量(成员变量)***

***实例方法*** 实例化之后才可以用的。

***类方法***   1、不用实例化就可以直接调用。   2、它可以通过cls使用类变量   3、它不能调用这个类里面的其他实例方法和实例变量

  class Person():

    @classmethod  ---- 紧跟其后的定义的函数就是类方法;调用方法Person.xm()

    def xm(cls):  #cls代表的就是Person       print(cls.country)       print('我是类方法')

***静态方法***   #你不想实例化的时候,就可以定义成类方法   #静态方法就是一个普通函数,只不过是写在类里面而已,它用不了类变量、类方法、实例变量、实例方法

  @staticmethod

  def xh():     print('这个是静态方法,它和一个没写在类里面的函数一样')

 

****************************************************************************************************************************************

私有

出了类之后,就不能用了。

***私有方法***

def __face()

***私有变量***self.__face = 5

 

*************************************************************************************************************************************

注:

if __name__ == '__main__':

判断这个python是在别的地方导入的,还是直接运行的这个python文件

这句话一般是做调试的时候用的。

如果是直接运行这个python文件的时候,这句话一点用都没有

print(__name__) #当前python运行结果为 __main__ #调用的情况下打印的结果是 【所在的文件名】

转载于:https://www.cnblogs.com/lynn-chen/p/9088639.html

最新回复(0)