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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
理解Python中的With语句
Feb 02 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
彻底理解Python list切片原理
Oct 27 Python
python实现将汉字保存成文本的方法
Nov 16 Python
Python数据可视化之画图
Jan 15 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
python+openCV对视频进行截取的实现
Nov 27 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 Python
Github 使用python对copilot做些简单使用测试
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绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
深入探究node之Transform
2017/07/20 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
Python set常用操作函数集锦
2017/11/15 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
2014超市收银员工作总结
2014/11/13 职场文书
房屋质量投诉书
2015/07/02 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
Flink 侧流输出源码示例解析
2022/09/23 Servers