例題1.1:
註記:a為teacher類,b為course類。
class a:definit(self , name , age):
self.teacher_name = name
self.teacher_age = age
self.salary = 2000 #設定乙個不需外部傳遞引數的屬性salary
class b:definit(self , course_name , cost ,teacher):
self.course_name = course_name
self.course_teacher = teacher#保證類a建立的(以teacher形參命名)的物件能被類b在內部(以self.course_teacher形式)在各個函式內呼叫
self.course_cost = cost
def class_up(self):
self.course_teacher.salary += self.course_cost#即self.course_teacher = t1
t1= a(『張三』,24)關鍵點:t2 = a(『李四』,25)
c1 = b(『高數課』,30,t1)#t1以乙個類a物件的形式作為類b的引數
print(c1.course_name) #輸出:高數課
#c1.course_teacher= t1, c1.course_teacher.teacher_name = t1.teacher_name
print(c1.course_teacher.teacher_name)
print(c1.course_teacher.teacher_age) #同上
print(c1.course_teacher.salary)
c1.class_up()
print(c1.course_teacher.salary)
類a建立的物件 = 類b的形參
=> 類b內可呼叫a的屬性和方法 or
類b建立的物件—>形參—>類a的屬性和方法(箭頭代指訪問)
例題1.2:
class car():definit(self, make, model, year):
self.make = make
self.model = model
self.year = year
def get_descriptive_name(self):
long_name = str(self.year) + 』 』 + self.make + 』 』 + self.model
print(「123」)
return long_name.title()
class battery():definit(self, battery_size=70):
self.battery_size = battery_size
def describe_battery(self):
print("this car has a " + str(self.battery_size) + 「-kwh battery.」)
class electriccar(car):definit(self, makee, make, model, year):
super().init(make, model, year)
self.makee = makee
self.battery = battery()
my_tesla = electriccar(『zjh』,『model』,『relaxed_、、bear』,『1998』)my_tesla.get_descriptive_name()
#print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
例題2.1:
class houseitem:definit(self,name,area):
self.name = name
self.area = area
defstr(self):
return 『[%s] 占地 %.2f 平公尺』%(self.name,self.area)
class house:definit(self,housetype,area):
self.housetype = housetype
self.area = area
self.free_area = area
self.itemslist =
def add(self,item):
#傳入的item形參為house建立的物件,故可直接訪問house中屬性area
defstr(self):
return (『戶型:%s\n總面積:%.2f\n剩餘面積;%.2f\n家具名稱列表:%s』
%(self.housetype,self.area,
self.free_area,self.itemslist))
#建立家具關鍵點:house類中add函式形參 = houseitem類建立的物件 => add函式內部可直接用其形參訪問houseitem類中area屬性。bed= houseitem(『席夢思』,400)
chest = houseitem(「衣櫃」,20)
table = houseitem(『餐桌』,1.5)
#建立房子
my_house = house(『兩室一廳』,100)
my_house.add(bed)
my_house.add(chest)
my_house.add(table)
print(my_house)
例題2.2:
class gun:definit(self,model):
self.model = model
self.bullet_count = 0
def add_bullet(self,count):
self.bullet_count += count
def shoot(self):
if self.bullet_count <= 0 :
print(』[%s]沒有子彈了…』 % self.model)
return
self.bullet_count -= 1
print(』%s tututu…[%s]』 %(self.model,self.bullet_count))
class soldier:definit(self,name):
self.name = name
self.gun = none #避免在外面新增屬性
def fire(self):
#判斷是否有槍
if self.gun is none:
print(』%s 沒有槍…』 % self.name)
return
print(『衝呀…[%s]』%self.name)
#裝填子彈
self.gun.add_bullet(50) #gun中建立的物件是soldier中的屬性(self.gun = ak47)故在soldier中可用此屬性呼叫gun中的方法
#發射子彈
self.gun.shoot()
#建立槍物件python初學小白一枚,如有錯誤,懇請各位大神批評指正!ak47 = gun(『ak47』)
#建立士兵-許三多
xusanduo = soldier(『xusanduo』)
xusanduo.gun = ak47 #用賦值語句把ak47交給許三多,即gun中建立的物件是soldier中的屬性
xusanduo.fire()#去呼叫槍中的 ak47.add_bullet()與 ak47.shoot()
py學習筆記
1.切片 list l l 2 4 l 1 10 2 同matlab l 複製 tuple 0,1,2,3,4 0 3 字串2.print 預設換行 print x 不換行print x,print y,orprint x,y 3.變數賦值 不需要型別宣告 gg 100.0 i,lov,u 233,...
py模組初識1
import sys print sys.path 結果為 d data d data d download python36.zip d download dlls d download lib d download d download lib site packages 這些路徑裡有的是存放了...
hibernate入門筆記 1
day1 hibernate資料持久化元件 hibernate.cfg.xml中會設定資料庫的連線資訊,以及引用的其他檔案的檔名,和一些其他的攝製。這個檔案一般放在專案的根目錄下。在hibernate.cfg.xml的寫法 hibernate的對映類的 x.hbm.xml的寫法 使用hibernat...