2017.11.14类属性、实例属性

1、文字描述 类属性、实例属性的区别。

类也是一种对象.

实例属性只属于当前这一个实例对象的.self访问的都是实例属性.

类是一种描述,类属性是属于每一个实例对象的,每一个对象都有类属性.而且都是一样的,只有一份.类属性所有的实例方法都共享.如果对象也有同名的实例属性,对象访问的时候,优先使用实例属性.其次才是类属性.实例属性会屏蔽掉同名的类属性.

2、写代码创建类属性和实例属性并注释指明是类属性还是实例属性

实例属性:

class Person:

sun = 1

p1=Person()

p2=Person()

#获取类属性,每一个对象都有类属性

print(p1.sun)

print(p2.sun)

print(Person.sun)

print('****************************************************************')

Person.sun=0

print(p1.sun)

print(p2.sun)

print(Person.sun)

类属性:

class Person:

sun = 1

p1=Person()

p2=Person()

#获取类属性,每一个对象都有类属性

print(p1.sun)

print(p2.sun)

print(Person.sun)

print('****************************************************************')

Person.sun=0

print(p1.sun)

print(p2.sun)

print(Person.sun)

print('****************************************************************')

#这里的sun是一个p1的实例属性

p1.sun=1111

print(p1.sun)

#p2是类属性

print(p2.sun)

print(Person.sun)

3、文字描述 类方法、实例方法、静态方法的区别。

答:

类方法是类对象所拥有的方法,需要用修饰器@classmethod(注解、元数据)来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数,能够通过实例对象和类对象去访问。类方法还有一个用途就是可以对类属性进行修改.

用实例属性调出来的方法就是实例方法.实例方法的第一个参数是实例对象self.

静态方法  需要通过修饰器@staticmethod来进行修饰,静态方法不需要多定义参数.

总结:

从类方法和实例方法以及静态方法的定义形式就可以看出来,类方法的第一个参数是类对象cls,那么通过cls引用的必定是类对象的属性和方法;而实例方法的第一个参数是实例对象self,那么通过self引用的可能是类属性、也有可能是实例属性(这个需要具体分析),不过在存在相同名称的类属性和实例属性的情况下,实例属性优先级更高。静态方法中不需要额外定义参数,因此在静态方法中引用类属性的话,必须通过类对象来引用.

4、写代码创建类方法、实例方法、静态方法并注释指明是类方法、实例方法、静态方法

class Person:

def f1(self):

print('f1...self=%s,id(self)=%s'%(self,id(self)))

self.num=120  #实例方法

@classmethod

def f2(cls):      #类方法

print('f2...cls=%s,id(cls)=%s'%(cls,id(cls)))

cls.num=110  #类属性

p1=Person()

p1.f1()

print(id(p1))

# Person.f1(p1)

print('****************************')

p1.f2()

print(id(Person))

Person.f2()

print(Person.num)

print('****************************')

print(p1.num)

print('****************************')

print('****************************')

p2 = Person()

print(p2.num)

print('****************************')

class Person:

@staticmethod  #静态的

def f1():    #静态方法

print('我是静态的,不强制传参')

p1 = Person()

p1.f1()

Person.f1()

print('****************************')

5、文字说明,你对面向对象的理解。

将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程.

按人们认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。

面向对象是一种设计思想

1 符合人们的思考习惯

2 把执行者变成指挥者

3 简化功能,把复杂的事情简单化

想完成一个事,找具有这样功能的对象,如果能找到,调用这个对象的功能,完成这个事

如果找不到,创建具有这样功能的对象,再调用完成这个事.

6、文字说明面向对象的三大特征是什么?怎么理解。

封装  继承    多态

封装:类是一种封装,将属性和方法封装。

函数也是一种封装,将具有一定共的逻辑代码封装到一个函数中,使用的时候调用即可

提高代码的扩展性。

继承:将共性的属性和方法放在父类中,子类只需要关注自己特有的属性和方法.提高代码的扩展性.

python中所有的内容都是对象,所有的对象都直接或间接继承了.虽然子类没有定义__init__方法,但是父类有,所以在子类继承父类的时候这个方法就被继承了,所以只要创建Bosi的对象,就默认执行了那个继承过来的__init__方法.子类在继承的时候,在定义类时,小括号()中为父类的名字父类的属性、方法,会被继承给子类.

多态:

一个对象在不同的情况下,具有不同的形态,用于强类型语言。是使用在继承和接口中实现。

Python中有两种说法:

1、python支持多态,python是一个弱类型,本身一个变量名,可以存储任何类型的值,可以理解为多种形态

2、python不支持多态,多态本身是用于强类型语言的,python是一个弱类型,所以不支持多态

Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型。

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

推荐阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,721评论 2 16
  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 3,753评论 0 27
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 1,397评论 0 6
  • 一、多态 1.概念 一种事物的多种体现形式,函数的重写其实就是多态的一种体现在Python中,多态指的是父类的引用...
    hollow_02f9阅读 5,963评论 0 1
  • 一 周五是hanna幼儿园万圣节活动,班里老师邀请家长和孩子们一起表演亲子节目。 因为给她准备了白雪公主的服装,我...
    竹筠益阅读 919评论 0 0