2021-01-04

python 跨类调用的三种方法

1.直接在实例方法中创建对象并调用类方法

class Person:
    def __init__(self, name=None):
        self.name = name

    def go_to(self):
        print('开车')
        car = Car()
        car.move()


class Car:
    def move(self):
        print('去东北')


lz = Person('lz')
lz.go_to()

# 开车
# 去东北

这种方法能够实现跨类调用,但是存在一个问题,每次在程序运行时都会产生一个新的车类,这样的话从程序的语法来讲不存在问题,但是从程序的语义层面来说,确是不符合情理的。

2.将实例方法的调用写在类的构造函数类

class Person:
    def __init__(self, name=None):
        self.name = name
        self.__car=Car()

    def go_to(self):
        print('开车')
        self.__car.move()


class Car:
    def move(self):
        print('去东北')


lz = Person('lz')
lz.go_to()

# 开车
# 去东北

方法2 能够进行类的跨类调用,也解决了方法1中出项的问题每次在程序的运行时,都会生成一个新的车类,因为构造函数只在程序运行时执行一次。但方法2也存在一点瑕疵,就是程序的中的车就只能是这一个了缺少了灵活性。

3.将对象当作参数,传递给实例方法

class Person:
    def __init__(self, name=None):
        self.name = name

    def go_to(self,car):
        print('开车')
        car.move()


class Car:
    def move(self):
        print('去东北')


lz = Person('lz')
car=Car()
lz.go_to(car)

# 开车
# 去东北

以上就是跨类调用的三种方法,三种方法都能实现,都能获得相同的结果,但是相对而言,方法3是最优的方法。

你可能感兴趣的:(笔记,python)