面向对象

1.类与实例

新式类,必须继承一个类,即必须有一个父类

class MyNewObjectType(bases):

经典类,没有指定父类

class MyNewObjectType:

经典类已过时,尽量使用新式类

实例化:myFirstObject=MyNewObjectType(),一般会将实例赋给一个变量,因为不赋给变量的话,就是没有任何引用,会被垃圾回收器回收的。

2.将类作为名字空间的容器

类不做任何事情,实例化后,给变量赋值

class MyData(object):

    pass

>>> mathObj=MyData()

>>> mathObj.x=4

>>> mathObj.y=5

>>> mathObj.x+mathObj.y

9

3.self

类中方法会有一个self的参数,代表实例对象本身,必须通过实例来调用,且调用的时候不需要传入self参数。

查看类的属性的方法:

1)dir(类名) 2)print 类名.__dict__

4.特殊的类属性

C.__name__:类C的名字(字符串)

C.__doc__:类C的文档字符串

C.__bases__:类C的所有父类构成的元组

C.__dict__:类C的属性

C.__module__:类C定义所在模块

C.__class__:实例C对应的类

__name__:对于类来说返回的是类名,对于类型对象来说返回的是类型名

>>> stype=type("What is your quest?")

>>> stype.__name__

'str'

>>> type(3.13344).__name__

'float'

__module__:当类是在本类中时,类所属的模块是__main__

当是被导入到其他模块时,类所述的模块是来源的模块

from mymod import C则类的C.__module__为mymod


5.特殊的实例属性

c.__class__:实例化c的类

c.__dict__:c的属性、

6.调用绑定方法和非绑定方法

一般情况下都是通过实例去调用方法的,即称为绑定方法

而在子类中可以通过父类调用父类方法的方式来复用代码,即称为非绑定方法

7.静态方法和类方法以及实例方法

实例方法中得传入self参数,表示实例对象,实例方法可以操作实例变量,因为已传入self,在调用实例方法的时候解释器会自动传入实例对象

静态方法不传self参数,不可以操作实例变量

类方法传入类本身即cls变量,同样不可以操作实例变量

但实例方法,静态方法和类方法都可以访问静态变量(类变量)


8.类的继承

可继承多个类

class subClassName(ParentClass1[,ParentClass2,ParentClass3])

subClassName.__bases__可以查看到父类

子类可以覆盖父类的方法

如果在覆盖父类方法时,想重用父类方法,使用super

class C(P):

    def  __init__(self):

              super(C,self).__init()

9.类和实例的内建函数

issubclass(sub,sup):sub是不是sup的子类

isinstance(obj1,obj2):判断obj1是不是obj2的实例

print issubclass(C,P)

print isinstance(c,C)

hasattr(obj,attrName)类或实例是否有某个属性

getattr(obj,attrName)获取类或实例的某个属性

10.super()函数

super(type[,obj]):返回此type的父类

如果obj是一个实例,isinstance(obj,type)必须为True

如果obj是一个类或类型,issubclass(obj,type)必须返回True

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容

  • Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类...
    chen_000阅读 782评论 2 2
  • @(python)[笔记] 目录 前言 在python中,一切皆对象面向对象的程序设计的核心就是对象;面向对象的程...
    CaiGuangyin阅读 591评论 0 5
  • 面向过程的编程思维是:按照处理流程,每一步需要做什么?用哪些函数可以解决?严格按照流程来把事情完成就ok了。这个在...
    redLion阅读 1,024评论 0 2
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 1,137评论 0 2
  • 微信上有人问我这个问题,如图: 写的够千字了那先把草稿发出来哈哈。 回答这个问题的时候发现,有段时间没有进行输入了...
    蒋血阅读 243评论 0 2