Warm tip: This article is reproduced from serverfault.com, please click

import-Python

(import - Python)

发布于 2020-11-29 06:28:27

Noob问题我需要将以下内容分为两个不同的.py文件,并让第二个文件导入第一个文件以获取其信息。

我无法理解的问题是,当我将整个文件作为一个文件运行时,它可以正常工作。因此,如果我只是将其拆分并将类从一个导入到下一个,它是否应该工作?

运行test.py时出现的错误是NameError:未定义名称'Car'。在线mycar =汽车(年,品牌,型号)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

#此文件名为car.py

Car:def init(自身,年份,品牌,速度):

    self.__year_model = year
    self.__make = make
    self.__speed = 0

def set_year_model(self, year):
    self.__year_model = year

def set_make(self, make):
    self.__make = make

def set_speed(self, speed):
    self.__speed = 0

def get_year_model(self):
    return self.__year_model

def get_make(self):
    return self.__make

def get_speed(self):
    return self.__speed

#methods
def accelerate(self):
    self.__speed +=5

def brake(self):
    self.__speed -=5

def get_speed(self):
    return self.__speed

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

#此文件名为test.py

进口车

def main():

year = input('Enter the car year: ')
make = input('Enter the car make: ')
speed = 0

mycar = Car(year, make, speed)

#Accelerate 5 times
mycar.accelerate()
print('The current speed is: ', mycar.get_speed())
mycar.accelerate()
print('The current speed is: ', mycar.get_speed())
mycar.accelerate()
print('The current speed is: ', mycar.get_speed())
mycar.accelerate()
print('The current speed is: ', mycar.get_speed())
mycar.accelerate()
print('The current speed is: ', mycar.get_speed()) 

#Brake 5 times
mycar.brake()
print('The current speed after brake is: ', mycar.get_speed())
mycar.brake()
print('The current speed after brake is: ', mycar.get_speed())
mycar.brake()
print('The current speed after brake is: ', mycar.get_speed())
mycar.brake() 
print('The current speed after brake is: ', mycar.get_speed())
mycar.brake()
print('The current speed after brake is: ', mycar.get_speed())

#调用主函数

主要的()

Questioner
Dustin Keith
Viewed
12
Meny Issakov 2020-11-29 14:35:33

当前,你正在导入module命名car文件(即文件名)。所以你需要改变你的代码才能使用car.Car(...)

或更常见的选项,将你的导入语句更改为: from car import Car