python物件導向之巢狀

2021-09-19 15:23:10 字數 2311 閱讀 2039

22題:編寫類完成以下的巢狀關係

"""

角色:學校、課程、班級

要求: 1. 建立北京、上海、深圳三所學校。

2. 建立課程

北京有三種課程:linux、python、go

上海有兩種課程:linux、python

深圳有一種課程:python

3. 建立班級(班級包含:班級名稱、開班時間、結課時間、班級人數)

北京python開設:21期、22期

北京linux開設:2期、3期

北京go開設:1期、2期

上海python開設:1期、2期

上海linux開設:2期

深圳python開設:1期、2期

"""

簡要**示例

#!/usr/bin/env python

# -*- coding:utf-8 -*-

class school:

def __init__(self, place):

self.place = place # 學校位址

class course:

def __init__(self, cname, school_obj):

self.cname = cname # 課程名稱

self.school = school_obj.place # 學校位址

class grade:

def __init__(self, name, stime, etime, stu_total, course_obj):

self.gname = name # 班級名稱

self.stime = stime # 開始時間

self.etime = etime # 結束時間

self.stu_total = stu_total # 人數

self.course = course_obj # 課程詳情(包括課程名稱和學校名稱)

sch1 = school('北京')

sch2 = school('上海')

sch3 = school('深圳')

course1 = course('python', sch1)

course2 = course('linux', sch1)

course3 = course('go', sch1)

course11 = course('python', sch2)

course12 = course('linux', sch2)

course13 = course('go', sch2)

course21 = course('python', sch3)

course22 = course('linux', sch3)

course23 = course('go', sch3)

g1 = grade('21期', '2017', '2018', 33, course1)

g2 = grade('22期', '2017', '2018', 33, course1)

g3 = grade('2期', '2017', '2018', 33, course2)

g4 = grade('3期', '2017', '2018', 33, course2)

g5 = grade('1期', '2017', '2018', 33, course3)

g6 = grade('2期', '2017', '2018', 33, course3)

g7 = grade('1期', '2017', '2018', 33, course11)

g8 = grade('2期', '2017', '2018', 33, course11)

g9 = grade('2期', '2017', '2018', 33, course12)

g10 = grade('1期', '2017', '2018', 33, course21)

g11 = grade('2期', '2017', '2018', 33, course21)

l = ['g' + str(i) for i in range(1, 12)]

for i in l: # 預設i為字串無法執行 需要eval

place = eval(i).course.school

course_name = eval(i).course.cname

gname = eval(i).gname

print(f'開設:')

題源:

物件導向 巢狀 特殊方法

type issubclass isinstance super func class base object base object def func self super func print base.func class bar object def func self print bar....

Python物件導向之物件成員

任務 請修改右側 begin end 之間的 使其可以正常執行。該 的目的是求輸入資料的階乘。請在下面的begin end之間按照注釋中給出的提示編寫正確的 begin class factorial def init self,num self.num num defget value self ...

Python物件導向之繼承

即乙個派生類 derived class 繼承基類 bass class 欄位和方法。繼承也允許把乙個派生類的物件作為乙個基類物件對待。例如,有這樣乙個設計,乙個cat型別的物件派生自animal類,這是模擬 是乙個 is a 關係 例如,cat是乙個animal 繼承實現了 的重用。繼承的基本語法...