首页 > 解决方案 > Python - 从另一个 .py 文件导入类时遇到问题

问题描述

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

我难以理解的问题是,当我将整个事情作为一个文件运行时,它工作正常。那么如果我只是拆分它并将类从一个导入到下一个,它不应该找到吗?

运行 test.py 时出现的错误是 NameError: name 'Car' is not defined。在线 mycar = 汽车(年份、品牌、型号)

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

#这个文件名为car.py

汽车类: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

进口车

定义主():

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())

#调用主函数

主要的()

标签: pythonimport

解决方案


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

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


推荐阅读