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获取豆瓣电影简介代码分享
Jan 16 Python
python实现倒计时的示例
Feb 14 Python
python字典序问题实例
Sep 26 Python
python定时执行指定函数的方法
May 27 Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
Python中标准模块importlib详解
Apr 16 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Django框架自定义session处理操作示例
May 27 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
js实现日历的简单算法
2017/01/24 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
应聘文员自荐信范文
2014/03/11 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
2014年政教处工作总结
2014/12/20 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers