python 面向对象基础
来源:互联网 发布:移动网络运营商是哪个 编辑:程序博客网 时间:2024/05/28 17:08
# !/usr/bin/env python# coding=utf-8# 类的简单测试class Person(object): """这是类的文档""" # 构造函数,Python中对象的属性值动态添加 # python 不不支持函数重载 def __init__(self, name, id): self.name = name # 实例变量 self.id = id print '父类的__init__' self.__test() def show_name(self): print 'Person name is ', self.name def __getattr__(self, item): print "__getattr__ >>> " return "xxx" # 析构方法,删除对象 # 调用示例: del person def __del__(self): pass # 类的私有方法,不能在类外部进行调用 # 两个下划线为私有方法的声明 def __test(self): print '__test 是私有方法'# print Person.__doc__ 打印类文档# print Person.__name__ 打印类名# print Person.__dict__ 打印类类的属性# 创建实例对象person = Person('y', 01)person.name = 'yyy'# 使用get访问属性print person.__getattr__(person.name)# del person.name # 删除这个属性""" 使用get set 访问属性值 getattr(obj, name[, default]) : 访问对象的属性。 hasattr(obj,name) : 检查是否存在一个属性。 setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。 delattr(obj, name) : 删除属性。"""# Python 的引用计数(GC机制)# print id(person) # 打印对象的ID# 引用变化,引用指向的对象没有发生变化a = personb = ac = person# id值均相同print id(a)print id(b)print id(c)# 继承"""1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。"""class Student(Person): name = 'yangtianrui' # 类变量,对象可以访问类变量 def __init__(self, name, id): # 需调用父类的构造器,必须显示声明 Person.__init__(self, name, id) # 访问类变量 print '类变量', self.__class__.name pass def display(self): # 调用父类方法的两种形式,__init__方法也一样 # Person.show_name(self) # 使用类名前缀调用父方法 # 也可以使用super()执行父类的函数 super(Student, self).show_name() # 必须继承自Object # 类的静态方法 @staticmethod def static_method(a, b): print a + b # 类的类方法 # 类方法是将类本身作为对象的方法 @classmethod def class_method(cls, x): print cls.name * x # 将类名输出x遍student = Student('yyytttrrr', 10)# 调用静态方法student.static_method(10, 20) # 也可以使用对象进行调用Student.static_method(10, 20)# 调用类方法student.class_method(2)Student.class_method(3)# 类变量和实例变量# 类变量定义在类的定义之后,实例变量则是以为self.开头
0 0
- Python面向对象基础
- python面向对象基础
- python 面向对象基础
- python面向对象基础
- python 面向对象 基础
- Python基础-面向对象基础
- python面向对象编程基础
- Python 基础08 面向对象
- Python基础08 面向对象
- Python面向对象编程基础
- Python面向对象编程基础
- python面向对象编程基础
- python 面向对象编程-基础
- python的面向对象基础
- Python面向对象编程基础
- python基础—面向对象
- python基础-----面向对象编程
- Python面向对象(基础整理)
- 设计模式之中介者模式
- 指针数组 数组指针 指针函数 函数指针的区别
- Hadoop学习笔记(11)-搭建Hive伪分布式及简单操作
- 单例模式与静态变量的区别
- java中的static
- python 面向对象基础
- [Qt起航]第三篇——(二)对话框的设计
- nodejs分析excel文件将结果写入excel文件
- flex布局
- 视频播放控件SurfaceView与VideoView
- JAVA-正则表达式
- poi操作excel
- 在两个ViewController之间传输数据
- AIDL通信机制简单使用步骤