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 相关文章推荐
Windows系统下多版本pip的共存问题详解
Oct 10 Python
python配置grpc环境
Jan 01 Python
python实现点击按钮修改数据的方法
Jul 17 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
Python如何给你的程序做性能测试
Jul 29 Python
如何利用Python 进行边缘检测
Oct 14 Python
python 图像增强算法实现详解
Jan 24 Python
利用python实现汉诺塔游戏
Mar 01 Python
python基础之匿名函数详解
Apr 21 Python
Python面向对象之成员相关知识总结
Jun 24 Python
Python获取指定日期是"星期几"的6种方法
Mar 13 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
浅析十款PHP开发框架的对比
2013/07/05 PHP
php中JSON的使用方法
2015/04/30 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
超简单的jquery的AJAX用法
2010/05/10 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
python网络编程之读取网站根目录实例
2014/09/30 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
python中return如何写
2020/06/18 Python
Python爬虫开发与项目实战
2020/12/16 Python
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
工作建议书范文
2019/07/08 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
导游词之任弼时故居
2020/01/07 职场文书
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电