python第九期学习笔记(十一)(面向对象)

本文摘自:

https://www.cnblogs.com/jin-xin/articles/10305113.html

class Human:
mind='有思想'
language='会语言'
#初如化类属性
def __init__(self,name,age,sex,hobby):
self.name=name
self.age=age
self.sex=sex
self.hobby=hobby

def work(self):
print('人类会工作')

def tools(self):
print('人类会使用工具')
#只要实例化对象,它会自动执行__init__方法
obj=Human('tom',22,'男','唱歌')

类的方法的调用方式:类的实例名.类方法名

obj.work()

属性的增,删,查,改操作:

1:增加:

obj.job='student'

2:修改: 

obj.sex='女'

3:删除:

del obj.hobby

4:查找:

 print(obj.name)

 


 

# 1:先定一个学校类(名字,地址)
# 2:定一个老师类(名字,学样)
class School:
def __init__(self,name,address):
self.name=name
self.address=address
self.teacher_list=[]
def append_teacher(self,teacher):
self.teacher_list.append(teacher)

class Teacher:
def __init__(self,name,school):
self.name=name
self.school=school

s1 = School('北京校区','美丽的沙河')
s2 = School('上海校区','上海迪士尼旁边')
s3 = School('深圳校区','南山区')

t1 = Teacher('武大',s1)
t2 = Teacher('海峰',s2)
t3 = Teacher('日天',s3)
t4=Teacher('小明',s1)

# print(t1.school.name)
# print(t2.school.name)
# print(t3.school.name)

s1.append_teacher(t1)
s1.append_teacher(t4)
s2.append_teacher(t2)
s3.append_teacher(t3)

for i in s1.teacher_list:
print(i.name,s1.name)

弄了一个好玩的,哈哈

 

 

class Base:
def __init__(self, num):
self.num = num
def func1(self):
print(self.num)
self.func2()
def func2(self):
print(111, self.num)
class Foo(Base):
def func2(self):
print(222, self.num)
lst = [Base(1), Base(2), Foo(3)]
for obj in lst:
obj.func1()

在上例中,当obj=Foo(3)时,子类没有func1()方法,会去执行父类的fun1()方法,当子类有自己的方法时,调用自己的方法,这里的func2()相当于子类重写了父类的方法

多继承的最简单实现方式:
案例一:一个类继承多个类
class Shenxian:
def fly(self):
print("神仙都会飞")
class Monkey:
def eat(self):
print("猴子爱吃桃")
class Sunwukong(Shenxian,Monkey):
pass
swk=Sunwukong()
swk.eat()
swk.fly()
案例二:一个类被多个类继承
pass
 

始终保持学习力,嘿嘿

 

 

 

 

 

原文地址:https://www.cnblogs.com/gaoyuxia/p/11730611.html