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 相关文章推荐
wxpython中利用线程防止假死的实现方法
Aug 11 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
深入浅析python 协程与go协程的区别
May 09 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
python文件和文件夹复制函数
Feb 07 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
Python 串口通信的实现
Sep 29 Python
Python爬虫中Selenium实现文件上传
Dec 04 Python
python中 .npy文件的读写操作实例
Apr 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
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
php-msf源码详解
2017/12/25 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
可输入的下拉框
2006/06/19 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
windows下python连接oracle数据库
2017/06/07 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
python不同版本的_new_不同点总结
2020/12/09 Python
Python的logging模块基本用法
2020/12/24 Python
《鞋匠的儿子》教学反思
2014/03/02 职场文书
志愿者活动总结
2014/04/28 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
工地材料员岗位职责
2015/04/11 职场文书
导游词之太原天龙山
2020/01/02 职场文书
nginx优化的六点方法
2021/03/31 Servers
一文简单了解MySQL前缀索引
2022/04/03 MySQL
Java无向树分析 实现最小高度树
2022/04/09 Javascript