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绘图方法实例入门
May 19 Python
Python 字典与字符串的互转实例
Jan 13 Python
tensorflow中next_batch的具体使用
Feb 02 Python
Python使用zip合并相邻列表项的方法示例
Mar 17 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
Python脚本按照当前日期创建多级目录
Mar 01 Python
Python字符串的常见操作实例小结
Apr 08 Python
PyQt QCombobox设置行高的方法
Jun 20 Python
django框架自定义模板标签(template tag)操作示例
Jun 24 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
利用Python将图片中扭曲矩形的复原
Sep 07 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
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
Python计算字符宽度的方法
2016/06/14 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
应届生保险求职信
2013/11/11 职场文书
求职自荐信格式
2013/12/04 职场文书
小学作文评语大全
2014/04/21 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python