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基础教程之Hello World!
Aug 29 Python
Python中获取网页状态码的两个方法
Nov 03 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
python提取字典key列表的方法
Jul 11 Python
python基础教程之匿名函数lambda
Jan 17 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
Jan 08 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
手残删除python之后的补救方法
Jun 26 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
我的论坛源代码(二)
2006/10/09 PHP
PHP的分页功能
2007/03/21 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
Python本地与全局命名空间用法实例
2015/06/16 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
django框架cookie和session用法实例详解
2019/12/10 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
追悼会上的答谢词
2014/01/10 职场文书
教学大赛获奖感言
2014/01/15 职场文书
办公室岗位职责
2014/02/12 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
公司年会开场白
2015/06/01 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
MySQL RC事务隔离的实现
2022/03/31 MySQL
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫