Python面向对象实现一个对象调用另一个对象操作示例


Posted in Python onApril 08, 2019

本文实例讲述了Python面向对象实现一个对象调用另一个对象操作。分享给大家供大家参考,具体如下:

我先总结一下python中的类的特点:

1.类中所有的方法的参数中都必须加self,并且是第一个参数

2.__init__方法用来初始化对象,也必须加self

3.用__str__方法,方法中有返回值,可以直接用print(对象引用的变量),__str__方法返回什么,print得到的就是什么

4.属性的赋值,最好用方法封装起来使用

__str__和__init__方法的举例:

# -*- coding:utf-8 -*-
#! python3
class Cat:
  def __init__(self,new_name,new_age): #初始化对象
    self.name = new_name
    self.age = new_age
  def __str__(self):
    return "%s的年龄是:%d"%(self.name,self.age)
  def eat(self):
    print("猫在吃鱼....")
  def drink(self):
    print("猫在喝可乐...")
tom = Cat("汤姆",40)
print(tom) #这个输出的结果就是str返回值的结果

运行结果:

汤姆的年龄是:40

一个对象调用另一个对象:

一个对象调用另一个对象的属性可以直接调用

# -*- coding:utf-8 -*-
#! python3
class Home:
  def __init__(self,new_area,new_info,new_addr):
    self.area = new_area
    self.info = new_info
    self.addr = new_addr
    self.left_area = new_area
    self.contain_items = []
  def __str__(self):
    msg="房子的总面积是:%d,可用面积是:%d,户型是:%s,地址是:%s"%(self.area,self.left_area,self.info,self.addr)
    msg += "当前房子里的物品是%s"%(str(self.contain_items))
    return msg
  def add_item(self,item):
    #self.left_area -= item.area
    #self.contain_items.append(item.name)
    self.left_area -= item.get_area()
    self.contain_items.append(item.get_name())
class Bed:
  def __init__(self,new_name,new_area):
    self.name = new_name
    self.area = new_area
  def __str__(self):
    return "%s占用的面积是:%d"%(self.name,self.area)
  def get_area(self):
    return self.area
  def get_name(self):
    return self.name
fangzi = Home(129,"三室一厅","北京市 朝阳区 长安街 666号")
print(fangzi)
bed1 = Bed("席木思",4)
fangzi.add_item(bed1)
print(fangzi)

运行结果:

房子的总面积是:129,可用面积是:129,户型是:三室一厅,地址是:北京市 朝阳区 长安街 666号当前房子里的物品是[]
房子的总面积是:129,可用面积是:125,户型是:三室一厅,地址是:北京市 朝阳区 长安街 666号当前房子里的物品是['席木思']

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python深入学习之特殊方法与多范式
Aug 31 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
使用python获取csv文本的某行或某列数据的实例
Apr 03 Python
Python3中详解fabfile的编写
Jun 24 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
基于pytorch的保存和加载模型参数的方法
Aug 17 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
Python3+selenium配置常见报错解决方案
Aug 28 Python
pycharm永久激活超详细教程
Oct 29 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 Python
Python后台开发Django的教程详解(启动)
Apr 08 #Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 #Python
Python定义函数功能与用法实例详解
Apr 08 #Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 #Python
Python下简易的单例模式详解
Apr 08 #Python
Python字符串的常见操作实例小结
Apr 08 #Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 #Python
You might like
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
php不写闭合标签的好处
2014/03/04 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
Python 实现简单的电话本功能
2015/08/09 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python实现自动发送邮件功能
2021/03/02 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
numpy数组广播的机制
2019/07/12 Python
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
学期自我鉴定范文
2013/10/01 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
期末复习计划
2015/01/19 职场文书
承诺书范本
2015/01/21 职场文书
高一作文之乐趣
2019/11/21 职场文书
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python