之前觉得有java和c++的底子,对python的类没有认真研习,后面到了写项目的时候各种懵逼。终于决定彻底解决python的类问题。

  一、python的类定义:

1 class cls_name:
2     def __new__(cls,*args,**kvargs):
3         pass
4     def __init__(self,*args,**kvargs):
5         pass

  二、类的属性:

  分三种:

  (1)内置属性:

  __name__ -> class-name

  __doc__    -> class-descript

  __bases__ -> tuple-for-father-class

  __dict__     ->dictionary-for-class-culnom

  __moudle__ ->class-moudle

  __class__ ->class-object-type

  (2)普通属性:

  xxx -> xxxx

  (3)隐藏属性:

  全隐藏属性,_xxx 不会引入,不能访问(模块级别就是脚本文件级别,不会被import 引入)

  半隐藏属性,__XX 访问  object_name._class-name__XX 类隐藏

 

  三、类的__new__ , __init__:

  继承新类object的类,和继承基础数据类型的类有__new__函数

  注明:super函数的使用super(classname,self/cls).__init/new__(self/cls)

1 class A(object):
2     def __new__(cls,value):
3         cls.para = value
4         return super(A,cls).__new__(cls)#必然存在类继承    
5     def __init__(self,value):
6         self.para = value

  

  四、类的方法

  (1)实例方法:

class A:
    def show(self):
        print "yes"

    (2)类方法:

  @classmethod修饰,可以访问类的属性,那些特殊属性,类可以访问,实例也可以访问。类访问-》classname.functionnane(*args,**kvargs) 

class A:
    @classmethod
    def show(cls):
        print cls.__doc__

  (3)静态方法:

  @staticmethod修饰 没有参数限制 self和cls都不是必须的,可以通过实例和类访问

class A:
    count = 1
    @staticmethod
    def show():
        print A.count

 

相关文章:

  • 2022-12-23
  • 2021-08-26
  • 2021-09-01
  • 2021-08-18
  • 2022-02-09
  • 2021-04-18
  • 2021-06-02
  • 2021-12-08
猜你喜欢
  • 2021-12-24
  • 2021-04-17
  • 2021-11-04
  • 2022-02-01
  • 2021-09-18
  • 2021-07-11
  • 2022-12-23
相关资源
相似解决方案