py入門筆記1

2021-10-09 23:59:37 字數 4798 閱讀 2381

例題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))

#建立家具

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)

關鍵點:house類中add函式形參 = houseitem類建立的物件 => add函式內部可直接用其形參訪問houseitem類中area屬性。

例題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()

#建立槍物件

ak47 = gun(『ak47』)

#建立士兵-許三多

xusanduo = soldier(『xusanduo』)

xusanduo.gun = ak47 #用賦值語句把ak47交給許三多,即gun中建立的物件是soldier中的屬性

xusanduo.fire()#去呼叫槍中的 ak47.add_bullet()與 ak47.shoot()

python初學小白一枚,如有錯誤,懇請各位大神批評指正!

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...