類的關聯關係
乙個類呼叫另乙個類的屬性和函式方法
「」"公路(road):
屬性:公路名稱 , 公路長度
車(car):
屬性: 車名,時速
方法: 1.求車名在那條公路上以多少的時速行駛了多久
get_time(self,road)
2.初始化車屬性資訊__init__ 方法
3.列印物件顯示車的屬性資訊
「」"
//import random
class
road
: #定義road類
def __init__
(self,name,len)
: self.name=name
self.len=len
def func
(self)
:print
('123'
)class
car: #定義car類
def __init__
(self,brand,speed)
: self.brand=brand
self.speed=speed
def 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 msg
def __str__
(self)
: #物件呼叫該類時 呼叫完後自動執行str
return
'{}品牌的,速度:{}'
.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京藏高速
123123
奧迪品牌的車在京藏高速上以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=brand
self.type=type
self.color=color
def online
(self)
:print
('正在用電腦上網'
) def __str__
(self)
:return self.brand+
'---'
+self.type+
'---'
+self.color
class
book
: n=
0 def __init__
(self,bookname,author,number)
: self.name=bookname
self.author=author
self.number=number
def reduce
(self)
: global n
n+=1return n
def __str__
(self)
:return self.name+
'-*****--'
+self.author
class
student
: def __init__
(self,name,computer,book)
: self.name=name
self.computer=computer
self.book=book
self.books=
#建議用列表 儲存多本書 我多給你傳幾本
self.books.
(book.author) #book引用其他類的物件
def borrow_book
(self,book)
:for i in self.books: #self.books已在init中定義了 且在後邊的物件呼叫中先執行過了
if i==book.name: #i將遍歷列表中的作者和書名
print
('已經借過此書'
)break
else
: #將引數book新增到列表中
self.books.
(book.name)
print
('借書成功'
)break
# self.books.
(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--
-淺灰色---[
'南派三叔'
]南派三叔
第二次借書
借書成功
借書成功
南派三叔
鬼吹燈盜墓筆記
依賴關係 關聯關係
一 依賴關係 a物件作為b物件的區域性變數或是方法形參的,b依賴於a,這時候我們稱a與b之間存在一種依賴關係 給土豪打 物件作為形式引數 void calltuhaowithphone czphone phone void sendmessagetodiaosi 1 什麼是引數依賴 當a物件作為另外...
類的關聯 組合 聚合關係
關聯 類的例項持有著對其他物件的引用,沒有整體與部分的意義。組合 整體與部分的關係,且類的例項與其內部的物件在生命期上保持一致,同時建立和銷毀。另外,組合不允許有組合迴路,否則編譯不報錯,但是執行時將會出現stackoverflowexception 的異常導致程式終止。聚合 整體與部分的關係,且類...
Elasticsearch關聯關係
elasticsearch父子關係 5.x參考 官網join介紹 es6.x一對多方案參考 注意 elasticsearch的關聯關係,必須要在同乙個索引裡面,而且父子關係必須在同乙個分片中。es6.x版本規定乙個索引中只能有乙個type,這就導致了,父子關係就必須放在同乙個type中。例子 本部落...