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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁四个月宝宝有点斜颈怎么办? 六个月的宝宝脖子有点歪怎么办 情感交叉擦腿综合症心里治疗怎么办 坐月子受风了胳膊腿疼怎么办 劲椎手术两个月双腿疼痛麻这怎么办 手机里存的照片删除了怎么办 买了好几双鞋子都不防滑怎么办 电脑平车车加绒过厚不起线怎么办 碰见那种看不起人的店员应该怎么办 在食品厂上班載卫生帽头发痒怎么办 工司没给员工上保险离职后怎么办 货物被香港律政司扣了怎么办 室友考研要跟我考一样的学校怎么办 药流第一天才吃了一粒米非司怎么办 药流半月同房第二天大出血怎么办 口臭想让它变得不臭怎么办 来单位干了几天不满意想离职怎么办 药流吃药期间吃什么吐什么怎么办 养狗家里味道大怎么办养花有用吗 第一天上班站的脚疼怎么办 入职没有人事所需要的证书怎么办 入职第一天后不想去了怎么办 警察在执法过程中殴打群众怎么办 肾结石打了3天针痛得厉害怎么办 征兵体检过了到部队退兵怎么办 圆通快递要求退回结果被签收怎么办 新生儿蛋蛋淹了破皮了怎么办 要是和同学玩的时候打到睾丸怎么办 睾丸撞了一下里面碎了怎么办 睾丸被蚊子咬了挠坏流水疼怎么办 沐浴乳大量的灌注到尿道里怎么办 当电脑显示有文件损害时怎么办? 电脑上的压缩包手机上打不开怎么办 第五人格多酷账号退出了怎么办 更新显卡驱动时屏幕关闭了怎么办 不知道杯孕做了两次C丁怎么办 小说签约后更不到要求的字数怎么办 电脑中了感染病毒杀不干净怎么办 电脑下载的软件有病毒了怎么办 电脑强制关机后开不了机怎么办 受刺激后出现精神异常该怎么办