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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
Python中unittest用法实例
Sep 25 Python
使用优化器来提升Python程序的执行效率的教程
Apr 02 Python
python使用代理ip访问网站的实例
May 07 Python
python实现超简单的视频对象提取功能
Jun 04 Python
python连接mongodb密码认证实例
Oct 16 Python
python try except 捕获所有异常的实例
Oct 18 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
Python异常处理例题整理
Jul 07 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
Python二元算术运算常用方法解析
Sep 15 Python
全面介绍python中很常用的单元测试框架unitest
Dec 14 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
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
vscode自定义vue模板的实现
2021/01/27 Vue.js
python显示天气预报
2014/03/02 Python
Python os模块学习笔记
2015/06/21 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
tensorflow 实现数据类型转换
2020/02/17 Python
Python flask框架端口失效解决方案
2020/06/04 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
求网格中的黑点分布
2013/11/06 面试题
华三通信H3C面试题
2015/05/15 面试题
Java程序员常见面试题
2015/07/16 面试题
计划生育个人总结
2015/03/02 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
Golang数据类型和相互转换
2022/04/12 Golang
JavaScript前端面试组合函数
2022/06/21 Javascript