一、类

先看一段代码:

classPerson:

animal= '高级动物'walk_way= '直立行走' # 静态属性,静态变量,静态字段language= '语言'

def __init__(self,name,age,work): # 函数 动态属性,方法#print(self)

self.name =name

self.age=age

self.work=workdefeat(self):print('吃吃')defwork(self):print('工作')

obj= Person('alex',25,'it')

class:  类   Person:类名

类:具有相同属性或者功能的一类实物

对象:对象是类的具体体现。

# 结构上理解:面向对象分两个部分,静态属性  动态属性 (属性、方法)

特点:

(1)函数封装一个功能,而面向对象封装多个相关的功能

(2)面向对象是抽象的,它是一种思想,站在上帝的角度去理解他

(3)程序可扩展,对象都是一个个独立的。耦合性,差异性。

类名:

(1)查看类中的所有属性及方法:__dict__

print(Person.__dict__)

print(Person.__dict__['animal'])    # 单独查看某个属性

# 工作中,一般只会用__dict__查看类中的所有属性,不进行其他操作

(2)查看(增删改)类中某个,某些属性,用万能的点'.'

# print(Person.animal) # 查

# Person.name = 'alex' # 增 改

# print(Person.name)

# del Person.walk_way # 删

# print(Person.__dict__)

(3) 函数的操作方法。一般不通过类名来操作

Person.work(666) # 可以操作函数

二、对象

先看代码:

classPerson:

animal= '高级动物'walk_way= '直立行走'language= '语言'

def __init__(self,name,age,work):#print(self)

self.name =name

self.age=age

self.work=workdefeat(self):print('吃吃')defwork(self):print('工作')

obj= Person('alex',25,'it') #这是一个实例化过程,实例化一个内存空间(即对象空间)#print(obj)#print(obj.age)#print(obj.work)#print(obj.name)

obj.hobby = 'tesla'

print(obj.__dict__)

obj.name= 'Chris'

print(obj.__dict__)delobj.workprint(obj.__dict__)

obj.animal= '低等动物'

print(obj.__dict__) #给对象添加了animal的属性

print(Person.__dict__)print(obj.animal)print(Person.animal)#print(obj)

obj.eat()

# 对象

# 对象操作对象空间

#查看所有属性__dict__

# print(obj.__dict__)    #

# 对对象的某个属性  增删改查  万能的点

obj.hobby = 'tesla' # 增

obj.name = 'Chris'  # 改

del obj.work      # 删

print(obj.name)    # 查

类执行的过程图

三、组合

先看代码:

classGamerole:def __init__(self,nickname,ad,hp):

self.nickname=nickname

self.ad=ad

self.hp=hpdef equip_weapon(self, w): #给人物封装了一个武器属性,这个属性值是Weapon的一个对象

self.equip_weapon = w #组合

classWeapon:def __init__(self,name,ad):

self.name=name

self.ad=addeffight(self,role1,role2): # 此时的self为武器的内存地址

role2.hp= role2.hp -self.ad - role1.ad # 此时 role1、role2分别为p1、p2print('%s 用 %s 攻击了%s, %s掉了%s血,还剩%s血'%(role1.nickname,self.name,role2.nickname,role2.nickname,self.ad + role.ad,role2.hp))

p1= Gamerole('盖伦',20,500)

p2= Gamerole('剑豪',100,200)

w1= Weapon('大宝剑',30)

w2= Weapon('武士刀',80)

p2.equip_weapon(w2)

p2.equip_weapon.fight(p2,p1)

结果为:

剑豪 用 武士刀 攻击了盖伦, 盖伦掉了180血,还剩320血

插入解释图片:

python中面向对象空间时间_python基础学习Day15 面向对象、类名称空间、对象名称空间 (2)...相关推荐

  1. python中print的本质_Python基础语法全解

    一.Python简介 1. 了解Python Python是一种解释型(这意味着开发过程中没有了编译这个环节).面向对象(支持面向对象的风格或代码封装在对象的编程技术).动态数据类型的交互式(可在命令 ...

  2. python保存数据型变量_Python基础学习笔记(一)变量与数据类型

    https://m.toutiao.com/is/J3fN6eK/ Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如N ...

  3. 自学python需要多长时间-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

  4. python中的封装调用_Python基础之封装

    一.什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其 含义是其他程序无法调用. 要了解封装,离不开"私有化&qu ...

  5. python中的cell函数_python基础-函数

    函数的基本使用 函数的参数详解 名称空间与作用域 闭包函数 装饰器 2020.9.11 小白学习,如有错误欢迎指点 参考自egon大佬Python快速入门神器​www.zhihu.com 函数 使用函 ...

  6. python中的正则表达式语法_Python基础教程之正则表达式基本语法以及re模块

    什么是正则: 正则表达式是可以匹配文本片段的模式. 正则表达式'Python'可以匹配'python' 正则是个很牛逼的东西,python中当然也不会缺少. 所以今天的Python就跟大家一起讨论一下 ...

  7. 列举python中常用的数据类型_Python基础知识 变量和简单数据类型

    在本章节中,将介绍Python程序中会使用到的各种数据类型,以及如何在程序中使用变量来表示这些数据.其中用到的一些例子均来自<Python编程从入门到实践 第2版>. 一.变量 1. 变量 ...

  8. python中什么叫函数_Python 基础起步 (十) 什么叫函数?

    Python 函数 大家好,这一期让我们来看看Python中比较核心的知识点:函数(也叫方法),那么到底什么是一个函数呢?先让我引入一个官方一点的定义: 函数是对程序逻辑进行结构化或者过程化的一种编程 ...

  9. python中byte2array报错_python基础-bytes和bytearray的用法

    Python中的序列类型有bytes和bytearray. 二进制序列类型的用法比较少见,是python中少用的一种序列类型,对于二进制序列类型,大家基本了解即可. bytes二进制序列类型 指定长度 ...

最新文章

  1. python 编程入门-Python编程入门电子书教程,看这几个就够了
  2. sublime text2如何连接FTP/SFTP——图文详细教程
  3. sudo with no password
  4. 对于数据库表排他更新的理解
  5. idea中maven执行install报错_IntelliJ IDEA Maven编译install时报错,无效的发行版:1.8
  6. 服务器nasjava文件共享,办公室文件共享之如何搭建共享服务器或文件共享服务器nas?...
  7. python中回归拟合图_seaborn库:线性回归拟合图
  8. 软件开发工具--自考2018年10月程序填空
  9. VS2015常用快捷键总结
  10. [UWP]如何实现UWP平台最佳图片裁剪控件
  11. MAC 系统下怎么新建一个桌面
  12. python getA() 函数
  13. 微信公众号开发 - 配置表设计以及接入公众号接口开发
  14. RemoteView流程
  15. GNN论文周报 | 来自北航、中科院、MSRA、新加坡国立大学、慕尼黑工业大学等机构前沿论文研究...
  16. ZZULIOJ 1180-1198结构体专题 参考代码
  17. 计算机网络-数据链路层(超级无敌详细)
  18. solr的安装和配置
  19. 怎样看大盘指数即时分时走势图
  20. 微信如何突破支付宝的封锁

热门文章

  1. 神经网络最常用的10个激活函数,一文详解数学原理及优缺点
  2. centos6配置mysql5.7_CentOS 6/7 下 MySQL 5.7 安装部署与配置
  3. tomcat加白名单_超详细的tomcat管理页面各类型配置总结
  4. python 建筑建模_不可错过的python 街道数据爬取和分析神器!
  5. jQuery框架-1.jQuery基础知识
  6. JS基础:求一组数中的最大最小值,以及所在位置
  7. CSS清除行内元素之间的HTML空白
  8. 基于webpack搭建的vue element-ui框架
  9. GT sport赛道详解 - Dragon Trail | 龙之径
  10. 转载:pycharm最新版新建工程没导入本地包问题:module 'selenium.webdriver' has no attribute 'Firefox'...