Python对象组合
2024-10-09 04:54:59
一个类的对象作为另一个类的对象的属性,称为类的组合。
即 class1.instance1.property = class2.instance
组合也是代码重用的重要方式之一。
先定义三个类:人、汽车、手机
class Person:
def __init__(self,name,sex,age,position):
self.name = name
self.sex = sex
self.age = age
self.position = position
class Car:
def __init__(self,brand,price,color):
self.brand = brand
self.price = price
self.color = color
class Phone:
def __init__(self,brand):
self.brand = brand
def call_up(self):
print("I'm calling you...")
定义类
对于这三个类来说,各自独立又有联系,人可以拥有手机,人也可以拥有一辆汽车。
用代码来表现之间的联系
jack = Person('jack','male',35,'Manager') #实例化一个人
jack.car= Car(brand = 'Cadillac',price = 200000,color = 'Red') #给人新增一个车的属性,即人可以拥有一辆车,并实例化一辆车,再赋值给属性
jack.phone = Phone('SamSung') #原理同上
把对象赋值给属性
属性与方法的调用
print(jack.car.brand) #注意属性之间的调用写法顺序
print(jack.car.color)
print(jack.car.price)
print(jack.phone.brand) jack.phone.call_up() #调用方法 Cadillac
Red
200000
SamSung
I'm calling you...
属性与方法的调用
最新文章
- 修改Centos 6.5的yum源
- commons-lang包中我们常用的类的作用
- python 环境安装
- Java基础——I/O
- Java学习----类的组织(包)
- MVC 无法将类型“System.Collections.Generic.List<;AnonymousType#1>;”隐式转换为“System.Collections.Generic.IList<;Mvc3Modeltest.Models.Movie>;”。存在一个显式转换(是否缺少强制转换?))
- Linq To sql入门练习 Lambda表达式基础
- Vue.js01:跑马灯效果
- 酷痞运行于openwrt路由系统
- 总结,为什么要重写hashset的hashcode()和equals()?
- npm install报错Unhandled rejection RangeError: Maximum call stack size exceededill install
- 小D课堂【SpringBoot】接口Http协议开发实战
- oracle系统视图字段说明
- CPU线程 和 Java线程
- 支持向量机通俗导论(理解SVM的三层境界) by v_JULY_v
- http协议----->;http请求方式,post,get
- repo相关命令
- ui_modules和ui_method
- 大话设计模式--工厂模式 factory -- C++实现实例
- [ Database ] [ SQL Server ] SQL Server 很多不允許的操作解決方法
热门文章
- SpringBoot:静态资源映射、定制404、配置icon
- 【Linux基础总结】Shell 基础编程
- shell 条件结构之 if 语句使用总结
- vue省市区三级联动(高仿京东)
- es6中 var 和 let的区别
- [hdu4609]计数方法,FFT
- [hdu5164]ac自动机
- 一文带你了解Spring核心接口Ordered的实现及应用
- Python实现将网站域名解析为ip地址
- Rasa init报错:AttributeError: type object &#39;Callable&#39; has no attribute &#39;_abc_registry&#39;