Python中的实例属性、类属性,私有成员与公有成员,公有方法、私有方法和静态方法



Python中的实例属性、类属性

   类Class中成员变量有两种属性分别是:实例属性和类属性。类属性是在类中方法(也就是类中的函数)之外但又在类之中定义的属性;而实例属性是在构造函数中定义的(__init__),定义时候以self作为前缀。类属性在所有实例之间共享。在类内部和类外部都可以通过“类.类属性” 来访问。

        那么,类属性和实例属性分别怎么访问呢?在主程序中,如果想要访问实例属性,因为实例属性属于对象,只能通过对象名访问;如果要访问类属性,因为类属性属于类,可以通过类名访问,同时也可以通过对象名访问。

Python中的私有成员与公有成员


   类的属性在定义的时候,如果以两个短下滑线“__”开头则表示是私有属性,否则就是公有属性。

《Python中的实例属性、类属性,私有成员与公有成员,公有方法、私有方法和静态方法》

   例如,上面小程序中,书的大小是公有属性,而书的类型是私有属性。对公有属性可以公开使用,既可以在类内部访问,也可以在类外部访问。私有成员只能在类内部使用,但也可以通过特殊的方法进行访问,即“对象名._类名+私有成员”的方式。在主程序中对私有成员和公有成员的调用实例如下。

《Python中的实例属性、类属性,私有成员与公有成员,公有方法、私有方法和静态方法》

Python中的私有方法、公有方法和静态方法

   类中定义的方法有公有方法、私有方法和静态方法三种。私有方法以两个下划线“__”开始。如下区别:

公有方法通过对象名直接调用。

      定义公有方法:def namemethod()。调用:对象名.公有方法

私有方法:不能通过对象名直接调用。只能在属于对象的方法中通过self调用或者在外部通过特殊方法调用。

      定义私有方法:def __namemethod()。调用:self._namemethod。

静态方法:可以通过类名和对象名调用,但不能直接访问属于对象的成员,只能访问属于类的成员。

      定义静态方法:

      @staticmethod

      def methodname()。调用:类名.方法名



    原文作者:刘美洁
    原文地址: https://blog.csdn.net/lydia_liumeijie/article/details/80391531
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞