python 类关联关系

news/2024/11/17 18:57:56/

类的关联关系
一个类调用另一个类的属性和函数方法
“”"
公路(Road):
属性:公路名称 , 公路长度

车(Car):
属性: 车名,时速
方法: 1.求车名在那条公路上以多少的时速行驶了多久
get_time(self,road)
2.初始化车属性信息__init__ 方法
3.打印对象显示车的属性信息
“”"

//import random
class Road:   #定义Road类def __init__(self,name,len):self.name=nameself.len=lendef func(self):print('123')class Car:  #定义Car类def __init__(self,brand,speed):self.brand=brandself.speed=speeddef get_time(self,road):  #!!!!! 重点:::road可以是个对象  road和r指向同一地址  另外要注意 形参只能接收对象 不能接收类ran_time=random.randint(1,10)msg='{}品牌的车在{}上以{}速度行驶{}小时{}'.format(self.brand,road.name,self.speed,ran_time,road.func())  #调用了road这个形参传入的类 这个类中类的.name  road.name  还有类的函数road.func(),输出的结果带None,如果想去除None,就给func添加返回值return msgdef __str__(self):   #对象调用该类时 调用完后自动执行strreturn '{}品牌的,速度:{}'.format(self.brand,self.speed)print('------------------------二号has a例子---------------')
#创建实例化对象
r=Road('京藏高速',120)
audi=Car('奥迪',120)  #调用str方法 return给一个对象  必须有个对象来接收值
print(audi)    #输出类的str返回的值
print(r.name)
audi.get_time(r)  #将一个对象当成参数传输
print(audi.get_time(r))#因为r指向类 r改变了类地址中的属性 输出的就不同
R=Road('京藏高速',120)   #每次一个对象调用类 类都会创建一个新的地址 复制类到这个新地址中  每个对象都只能指向一个新地址 同时创建两个对象 就同时指向两个地址
r.name='沪杭高速'
print(audi.get_time(r))
print(audi.get_time(R))结果为
'------------------------二号has a例子---------------'
奥迪品牌的,速度:120
京藏高速
123
123
奥迪品牌的车在京藏高速上以120速度行驶4小时None
123
奥迪品牌的车在沪杭高速上以120速度行驶6小时None
123
奥迪品牌的车在京藏高速上以120速度行驶1小时None

二号例子
#student book computer
#知识点: 1。has a 一个类中使用了另外一种自定义的类型
# student使用了computer
# 2.类型:
# 系统类型:str int float list dict tuple set
# 自定义类型: 自定义的类 都可以将其当成一种类型 s=Student() s是Student类型的对象

//class Computer:def __init__(self,brand,type,color):self.brand=brandself.type=typeself.color=colordef online(self):print('正在用电脑上网')def __str__(self):return self.brand+'---'+self.type+'---'+self.colorclass Book:n=0def __init__(self,bookname,author,number):self.name=booknameself.author=authorself.number=numberdef reduce(self):global nn+=1return ndef __str__(self):return self.name+'-*****--'+self.authorclass Student:def __init__(self,name,computer,book):self.name=nameself.computer=computerself.book=bookself.books=[]   #建议用列表 保存多本书 我多给你传几本self.books.append(book.author)  #book引用其他类的对象def borrow_book(self,book):for i in self.books:  #self.books已在init中定义了 且在后边的对象调用中先执行过了if i==book.name:  #i将遍历列表中的作者和书名print('已经借过此书')breakelse:#将参数book添加到列表中self.books.append(book.name)print('借书成功')break# self.books.append(book)def show_book(self):for book in self.books:print(book)def __str__(self):#自定义类型 需用str强转  list也需要str一下return self.name+'---'+str(self.computer)+'---'+str(self.books)#创建对象
computer=Computer('mac','pro','浅灰色')
book1=Book('盗墓笔记','南派三叔',10)
book2=Book('鬼吹灯','天下霸唱',8)
stu=Student('songsong',computer,book1)  #形参的类型 除了系统定义的str int list dict float 之外  还有用户自定义类型 :类 比如Computer类型 Book类
print(stu)
stu.show_book()
print('第二次借书')
stu.borrow_book(book2)
stu.borrow_book(book1)stu.show_book()```结果为
songsong---mac---pro---浅灰色---['南派三叔']
南派三叔
第二次借书
借书成功
借书成功
南派三叔
鬼吹灯
盗墓笔记

http://www.ppmy.cn/news/704083.html

相关文章

python对象

类和对象 类属性和对象属性 当实例化对象的时候,加了新的属性并赋值,会优先使用对象属性(即使类中也有同样的属性),当对象属性没做改变时,使用类属性。 类中self的作用 类中的self其实就是指类本身。 …

Python---继承与多态

Python从入门到高手(内部资源-配学习资料)_哔哩哔哩_bilibili # 私有化 # 封装:1.私有化属性 2.定义公有set和get方法 # __属性:就是将属性私有化,访问范围仅仅限于类中1.隐藏属性不被外界随意修改 2.可以修改&#x…

Python面向对象之私有化属性

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、什么是私有化?二、私有化的处理-装饰器三. 继承的案例四 继承的顺序五 工资案例 前言 本文主要介绍私有化的属性 提示:以下是本篇文…

Python基础教程—私有化

一、私有化 1、定义 (1)私有化 如果想让类的内部属性不被外界直接访问,可以在这个属性的前面加两个下划线__ ,在 Python中,如果一个属性的前面出现 __,就表示这个属性只能在当前类的方法中被直接访问,不能通过对象直…

JavaScript 《公司开发功能》 99+ 大合集

​前期回顾 ​ Vue项目实战 —— 后台管理系统( pc端 ) 第三篇_0.活在风浪里的博客-CSDN博客mock模拟数据、折线图、柱状图、饼图,一遍就懂!!~https://blog.csdn.net/m0_57904695/article/details/124861409?spm1001.2014.3001.5501 目…

【HDOJ】3275 Light

这就是个简单线段树延迟标记。因为对bool使用了~而不是&#xff01;&#xff0c;wa了一下午找不到原因。 1 /* 3275 */2 #include <iostream>3 #include <sstream>4 #include <string>5 #include <map>6 #include <queue>7 #include <set>…

CSS基础(待完整)——css简介、css基础选择器、字体属性、css文本属性、css引入方式、Emmet语法、css复合选择器、元素显示器、背景、三大特性、盒子模型

文章目录 CSS简介CSS语法规范CSS代码风格样式格式书写样式大小写空格规范 CSS基础选择器CSS选择器的作用选择器分类标签选择器类选择器类选择器-多类名id选择器通配符选择器 字体属性字体系列字体大小字体粗细文字样式字体复合属性 CSS文本属性文本颜色对齐方式装饰文本文本缩进…

VUE小白学习-官方网站资料学习-2023年5月22日

VUE小白学习-官方网站资料学习-2023年5月22日 VUE干啥的&#xff1f;单文件组件&#xff1f;官方说&#xff0c;VUE前端万金油。 日期&#xff1a;2023年5月22日 VUE干啥的&#xff1f; 是一个前端框架&#xff0c;有自己的一套规则&#xff0c;方便前端开发。 单文件组件&am…