在单独的文件中从类创建对象

Tre*_*era 30 python class object package

我已经完成了几个关于Python的教程,我知道如何定义类,但我不知道如何使用它们.例如,我创建以下文件(car.py):

class Car(object):
    condition = 'New'
    def __init__(self,brand,model,color):
        self.brand = brand
        self.model = model
        self.color = color

    def drive(self):
        self.condition = 'Used'
Run Code Online (Sandbox Code Playgroud)

然后我创建另一个文件(Mercedes.py),我想从类Car创建一个Mercedes对象:

Mercedes = Car('Mercedes', 'S Class', 'Red')
Run Code Online (Sandbox Code Playgroud)

,但是我收到一个错误:

NameError: name 'Car' is not defined
Run Code Online (Sandbox Code Playgroud)

如果我在创建它的同一个文件(car)中创建一个实例(对象),我没有问题:

class Car(object):
    condition = 'New'
    def __init__(self,brand,model,color):
        self.brand = brand
        self.model = model
        self.color = color

    def drive(self):
        self.condition = 'Used'

Mercedes = Car('Mercedes', 'S Class', 'Red')

print (Mercedes.color)
Run Code Online (Sandbox Code Playgroud)

哪个印刷品:

Red
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何从同一个包(文件夹)中不同文件的类创建一个对象?

ssh*_*124 54

在您的应用程序中Mercedes.py,您应该car.py按如下方式导入文件(只要这两个文件位于同一目录中):

import car
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

Mercedes = car.Car('Mercedes', 'S Class', 'Red')  #note the necessary 'car.'
Run Code Online (Sandbox Code Playgroud)

或者,你可以做到

from car import Car

Mercedes = Car('Mercedes', 'S Class', 'Red')      #no need of 'car.' anymore
Run Code Online (Sandbox Code Playgroud)