首先需要声明的是,本文并不是讲面向对象编程,只是讲面向对象设计的思路。
情景
学校具有开展考试、进行招生等功能,而狗不具备这些能力,医院也没有这些功能,那么在Python中,如何只让学校调用这些功能,而其他东西无法实现呢?如何做到只面向学校这一类呢?
思路
版本一,将某个学校和函数中输出内容完全固定
school = {
'name': 'UIR',
'addr': 'Beijing',
'types': 'Public School', # 以上三个为学校的属性
}
def exam():
print('%s %s %s is having exams' % (school['addr'], school['types'], school['name']))
def recruit():
print('%s %s %s is recruiting students' % (school['addr'], school['types'], school['name']))
# 让学校开始考试
exam(school)
# 让学校开始招生
recruit(school)
版本二,函数中可以传参,可以传入不同的学校,但是也可以传入猫、司机、公寓等和学校不是同一类的参数
school = {
'name': 'UIR',
'addr': 'Beijing',
'types':