zoukankan      html  css  js  c++  java
  • 重新学习python类

      之前觉得有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
  • 相关阅读:
    ubuntu 14.04 下试用Sublime Text 3
    闲来无事,温习一下快速排序法
    学艺不精,又被shell的管道给坑了
    ssh登录失败处理步骤
    linux文件权限整理
    使用ssh远程执行命令批量导出数据库到本地
    leetcode-easy-design-384 Shuffle an Array
    leetcode-easy-dynamic-198 House Robber-NO
    leetcode-easy-dynamic-53 Maximum Subarray
    leetcode-easy-dynamic-121 Best Time to Buy and Sell Stock
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/7802118.html
Copyright © 2011-2022 走看看