一. 类的空间问题

1.1 何处可以添加对象属性class A:

def __init__(self,name):

self.name = name

def func(self,sex):

self.sex = sex# 类外面可以:

obj = A('barry')

obj.age = 18

print(obj.__dict__)  # {'name': 'barry', 'age': 18}

# 类内部也可以:

obj = A('barry') # __init__方法可以。

obj.func('男')  # func 方法也可以。

总结:对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加。

1.2 何处可以添加类的静态属性class A:

def __init__(self,name):

self.name = name

def func(self,sex):

self.sex = sex

def func1(self):

A.bbb = 'ccc'# 类的外部可以添加

A.aaa = 'taibai'

print(A.__dict__)

# 类的内部也可以添加。

A.func1(111)

print(A.__dict__)

总结:类的属性不仅可以在类内部添加,还可以在类的外部添加。

1.3 对象如何找到类的属性

之前咱们都学习过,实例化一个对象,可以通过点的方式找到类中的属性,那么他为什么可以找到类中的属性呢?

通过图解说明:

对象查找属性的顺序:先从对象空间找  ------> 类空间找 ------> 父类空间找 ------->.....

类名查找属性的顺序:先从本类空间找 -------> 父类空间找--------> ........

上面的顺序都是单向不可逆,类名不可能找到对象的属性。

二. 类与类之间的关系

⼤千世界, 万物之间皆有规则和规律. 我们的类和对象是对⼤千世界中的所有事物进⾏归类. 那事物之间存在着相对应的关系. 类与类之间也同样如此. 在⾯向对象的世界中. 类与类中存在以下关系:

1. 依赖关系2. 关联关系3. 组合关系4. 聚合关系5. 实现关系6. 继承关系(类的三大特性之一:继承。)

2.1 依赖关系

首先, 我们设计一个场景. 还是最初的那个例子. 要把大象装冰箱. 注意. 在这个场景中, 其实是存在了两种事物的. 一个是大象, 大象负责整个事件的掌控者, 还有一个是冰箱, 冰箱负责被大象操纵.

首先, 写出两个类, 一个是大象类, 一个是冰箱类class Elphant:

def __init__(self, name):

self.name = name

def open(self):

'''

开⻔

'''

pass

def close(self):

'''

关⻔

'''

pass

class Refrigerator:

def open_door(self):

print("冰箱⻔被打开了")

def close_door(self):

print("冰箱⻔被关上了")

冰箱的功能非常简单, 只要会开门, 关门就行了. 但是大象就没那么简单了. 想想. 大象开门和关门的时候是不是要先找个冰箱啊. 然后呢? 打开冰箱. 是不是打开刚才找到的那个冰箱. 然后装大象 最后呢? 关冰箱门, 注意, 关的是刚才那个冰箱吧. 也就是说. 开和关的是同一个冰箱. 并且. 大象有更换冰箱的权利, 想进那个冰箱就进那个冰箱. 这时, 大象类和冰箱类的关系并没有那么的紧密. 因为大象可以指定任何一个冰箱. 接下来. 我们把代码完善一下.

class Elphant:

def __init__(self, name):

self.name = name

def open(self,obj1):

'''

开⻔

'''

print('大象要开门了,默念三声,开')

obj1.open_door()

def close(self):

'''

关⻔

'''

print('大象要关门了,默念三声,关')

class Refrigerator:

def open_door(self):

print("冰箱⻔被打开了")

def close_door(self):

print("冰箱⻔被关上了")

elphant1 = Elphant('大象')

haier = Refrigerator()

elphant1.open(haier)

动作发起的主体是大象,你们把关门这个练一下。依赖关系:将一个类的对象或者类名传到另一个类的方法使用。此时, 我们说, 大象和冰箱之间就是依赖关系. 我⽤着你. 但是你不属于我. 这种关系是最弱的.比如. 公司和雇员之间. 对于正式员工 肯定要签订劳动合同. 还得伺候着. 但是如果是兼职. 那无所谓. 需要了你就来. 不需要你就可以拜拜了. 这样的兼职(临时工) 就属于依赖关系.我⽤你. 但是你不属于我

python中面向对象空间时间_零基础老男孩学Python|面向对象之类的空间问题相关推荐

  1. 零基础轻松学python pdf 小码哥_零基础轻松学Python

    零基础轻松学Python电子书 Python之父Guido van Rossum力荐的Python门书.本书以通俗易懂的语言.好玩有趣的案例让读者轻轻松松.循序渐地从零始掌握Python 3 编程.本 ...

  2. 0基础学python需要多长时间_零基础学python大概要多久

    如果是自学的话,零基础学python大概要花一年到一年半的时间.每个人的资质不同.理解能力不同,所以花费的时间也不一样.建议零基础的学员报一个python培训班,这样可以有规划的系统性学习,而且花费的 ...

  3. 一个零基础学python能学会吗_零基础可以学Python吗

    展开全部 一.Python是一种计算机程序设计语言. 你可能32313133353236313431303231363533e78988e69d8331333433633338已经听说过很多种流行的编 ...

  4. python可以做机器人吗_零基础如何用Python写一个简单的WeChat机器人?(内附代码)...

    (bing图片) python这两年热火朝天,依托其众多类库,基于python的应用层出不穷,也大大降低了非计算机专业人员的入门门槛,WeChat机器人自然不在话下!-- 聪明的瓦肯人 苦于有时候总是 ...

  5. python血条游戏代码_零基础快速学十二课Python完整游戏代码,使用「格式符%」来处理...

    十二课Python不同数据类型的拼接方式,使用[格式符%]来处理 不过它还没有全部解决:打印出每局结果,三局两胜打印最终战果.这就是版本3.0需要做的事情. 打印战果,三局两胜. 对比2.0版本,在3 ...

  6. 跟艾文学编程《零基础入门学Python》(4)Python 面向对象

    作者: 艾文,计算机硕士学位,企业内训讲师和金牌面试官,公司资深算法专家,现就职BAT一线大厂. 邮箱: 1121025745@qq.com 博客:https://wenjie.blog.csdn.n ...

  7. 零基础入门学Python(十二)—— 魔法方法(上)

    零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(上) 1. 构造和析构 1.1 _ _ init _ _(self[, ...]) ...

  8. 零基础可以学python吗-零基础适合学Python吗?小白能否学会Python?

    原标题:零基础适合学Python吗?小白能否学会Python? 我没学过编程,能否学会Python? 肯定的回答您:完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零 ...

  9. 零基础适合学python吗-零基础适合学Python吗?小白能否学会Python?

    原标题:零基础适合学Python吗?小白能否学会Python? 我没学过编程,能否学会Python? 肯定的回答您:完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零 ...

最新文章

  1. 【原创】MyEclipse反编译添加jadclipse_3.3.0 曲折的完美解决
  2. 数据回发时,维护ASP.NET Tree控件位置
  3. 2020-11-24(dll注入的N种搞法)
  4. python变量类型是动态的_Python 学习 第四篇:动态类型模型
  5. boost::distance用法的测试程序
  6. 用C语言写的迅雷看看XV文件提取器及C语言源代码
  7. iOS imageview图片压缩变形
  8. ABAP的自学之路 ,初步认识ABAP 一
  9. nginx: [error] open() “/usr/local/var/run/nginx.pid“ failed (2: No such file or directory)
  10. 程序员都该知道这5个定律,有朋友使用后,现在已经是软件工程师!
  11. phpstudy本地搭建域名访问
  12. pads layout PCB整体旋转,不改变布局并保留连线
  13. Go 基本语法之变量声明
  14. DELPHI的编译指令
  15. 微信小程序开发的坑---tabBar
  16. IT人的职业生涯规划
  17. csgo fps不稳定和服务器,CSGO fps不稳定,求FPS 优化设置
  18. java swing实现文件浏览器功能小程序
  19. 未来,将是Captain technology新能源汽车的舞台
  20. R语言绘制复杂抽样设计数据cox回归生存曲线(Kaplan-Meier)

热门文章

  1. 程序迭代时测试操作的要点(后端前端)
  2. Noip2016day2
  3. cogs 2620. [HEOI2012]朋友圈
  4. jsp页面播放服务器视频
  5. NYOJ 305 表达式求值 (字符串处理)
  6. mysql数据库主从复制部署笔记
  7. NHibernate Linq中Null值排序的解决方法
  8. Linux 进程状态 说明
  9. DELL服务器故障代码.xlsx
  10. Path.GetExtension 方法