【问题标题】:Python - Trouble importing class from another .py filePython - 从另一个 .py 文件导入类时遇到问题
【发布时间】:2020-11-29 06:28:27
【问题描述】:

菜鸟问题 我需要将以下内容拆分为两个不同的 .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

进口车

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

#调用main函数

main()

【问题讨论】:

  • 您导入了模块,但没有使用它。试试from car import Car。否则你必须使用car.Car访问Car

标签: python import


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2022-08-06
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    相关资源
    最近更新 更多