跨类调用
三种方式:直接创建对象、构造函数创建对象、参数传递对象
跨类调用: 方法1.在一个类里面创建另一个类对象,使用这个对象的方法 方法2.在构造函数里面创建 方法3.在使用时候创建对象,即通过参数传入
以面向对象思想,描述下列情景. 老张开车去东北
#1:老张每次开新车
class People: # 数据类
def __init__(self, name=""):
self.name = name
def go_to(self):
print(self.name)
car = Car()
car.run()
class Car: # 行为类
def run(self):
print("开汽车去")
lz = People("老张")
lz.go_to()
#2.老张老李每次开自己车
class People: # 数据类
def __init__(self, name=""):
self.name = name
self.car = Car()
def go_to(self):
print(self.name)
self.car.run1()
class Car: # 行为类
def run1(self):
print("开汽车去")
def run2(self):
print("开火车去")
lz = People("老张")
lz.go_to()
ll = People("老李")
ll.go_to()
#3:老张老李每次出门开相同的车
class People:
def __init__(self, name=""):
self.name = name
def go_to(self, vehicle):
print(self.name)
vehicle.run1()
class Car: # 行为类
def run1(self):
print("开汽车去")
lz = People("老张")
ll = People("老李")
car = Car()
lz.go_to(car)
lz.go_to(car)
# 练习 1:以面向对象思想,描述下列情景. 小明请保洁打扫卫生
#1.小明每次叫不同保洁打扫卫生
class Client:
def __init__(self, name=""):
self.name = name
def notify(self):
print(self.name,"发出通知")
cleaner = Cleaner()
cleaner.cleaning()
class Cleaner:
def cleaning(self):
print("打扫卫生")
xm = Client("小明")
xm.notify()
#小明每次叫同一个保洁打扫卫生
class Client:
def __init__(self, name=""):
self.name = name
self.cleaner = Cleaner()
def notify(self):
print(self.name,"发出通知")
self.cleaner.cleaning()
class Cleaner:
def cleaning(self):
print("打扫卫生")
xm = Client("小明")
xm.notify()
#小明每次叫想要的那个保洁打扫卫生
class Client:
def __init__(self, name=""):
self.name = name
def notify(self,service):
print(self.name,"发出通知")
service.cleaning()
class Cleaner:
def cleaning(self):
print("打扫卫生")
xm = Client("小明")
cleaner1 = Cleaner()
cleaner2 = Cleaner()
xm.notify(cleaner1)