ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
| 类的定义 | | | | --- | --- | ``` class Test: '类的注释文档' age = 28 #共有属性 __private_name = '私有的属性' #私有属性 _protected_name = '受保护的成员属性' #受保护的成员属性,只允许继承,外部不可能访问 def __init__(self, param, param1, param2): self.param = param self.param1 = param1 self.param2 = param2 def add(self, param, param1): return param + $param1 #构析函数 def __del__(self): print '销毁类实例的时候调用了' #子类 class Child(Test): def __init__(self): print '子类的构造方法' def childMethod(self): print '子类的方法' def add(self, param, param1): print '子类方法的重写' #继承多个父类 class Son(Test, Child): def __init__(self): print '子类的构造方法' def __sonMenthod(self): print '子类的方法' #类实例化和调用 obj = Test('参数1', '参数2', '参数3') #类的实例化 obj.add(1, 2) #调用类成员方法 obj.__doc__ #获取类的注释 obj.__name__ #获取当前类的名字 obj.__module__ #获取当前模块的名字 obj.__bases__ #()??? obj.__dict__ #字典类型显示类中的方法,属性等 del obj #删除类的实例对象 obj.Test.__private_name #获取私有属性,直接获取将会报错 ``` | 类的操作 | | | | --- | --- | --- | | setattr(obj, 'name', value) | obj.name = 7 | 为obj类中的成员属性'name'重新设置value值 | | delattr(obj, 'name') | del obj.name | 删除obj类中成员属性 'name' | | hasattr(obj, 'name') | | 如果类中存在成员属性 'name' 则返回 True,否则false | | getattr(obj, 'name') | | 获取obj类中成员属性'name'的值 | | issubclass() | 布尔函数判断一个类是另一个类的子类或者子孙类 | | isinstance(obj, Class) | 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true | | 类的魔术方法 | | | --- | --- | | __init__ ( self [,args...] ) | 类的初始化方法,即构造方法 | | __del__( self ) | 析构函数,在对象销毁的时候被调用,当对象不再被使用时,__del__方法运行,删除一个对象 | | __repr__( self ) | 转化为供解释器读取的形式 | | __str__( self ) | 用于将值转化为适于人阅读的形式 | | __cmp__ ( self, x ) | 对象比较 | | 函数详解 | | | --- | --- | ``` * [hasattr(object, name)] [用于判断对象是否包含对应的属性] * @param [object] [需要判断的对象] * @param [name] [字符串,属性名] * @return [如果对象有该属性返回 True,否则返回 False] * Example class Test: x = 1 y = 1 obj = Test() print(hasattr(obj, 'x')) #返回true ```