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语言实现获取主机名根据端口杀死进程
Mar 31 Python
tensorflow中next_batch的具体使用
Feb 02 Python
Python中pow()和math.pow()函数用法示例
Feb 11 Python
对numpy中array和asarray的区别详解
Apr 17 Python
解决python报错MemoryError的问题
Jun 26 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
关于python导入模块import与常见的模块详解
Aug 28 Python
python3 webp转gif格式的实现示例
Dec 10 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 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 file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
win7安装python生成随机数代码分享
2013/12/27 Python
Django中Middleware中的函数详解
2019/07/18 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
商务英语毕业生自荐信范文
2013/11/08 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
美国留学经济担保书
2014/05/20 职场文书
调研汇报材料范文
2014/08/17 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js