Python类定义 - import语句

use*_*619 1 python

我已经定义了2个类 - Person&Manager.Manager继承Person类.尝试导入Person类时出错.

代码如下.

Person.py

class Person:
    def __init__(self, name, age, pay=0, job=None):
        self.name = name
        self.age  = age
        self.pay  = pay
        self.job  = job

    def lastname(self):
        return  self.name.split()[-1]

    def giveraise(self,percent):
        #return self.pay *= (1.0 + percent)
        self.pay *= (1.0 + percent)
        return self.pay
Run Code Online (Sandbox Code Playgroud)

Manager.py

from Basics import Person

class Manager(Person):
    def giveRaise(self, percent, bonus=0.1):
        self.pay *= (1.0 + percent + bonus)        
        return self.pay
Run Code Online (Sandbox Code Playgroud)

错误陈述:

C:\ Python27 \基础> Person.py

C:\ Python27\Basics> Manager.py Traceback(最近一次调用最后一次):文件"C:\ Python27\Basics\Manager.py",第1行,来自Basics import Person ImportError:没有名为Basics的模块

为什么我发现No module found错误?

mgi*_*nbr 6

你应该查看import和PYTHONPATH的工作原理.在您的情况下,您可以使用以下方法解决

from Person import Person
Run Code Online (Sandbox Code Playgroud)

我看到你来自Java背景(每个文件必须有一个与文件名相同的类),但这不是Python模块的工作方式.

简而言之,当您从命令行运行Python脚本时,它会像您一样在当前目录中查找模块(以及其他位置).当您导入(简单)名称时,Python将寻找:

  1. 一个名为Basic.py; 要么:
  2. 名为Basic的文件夹,其文件名为__init__.py.

然后它将在该模块中查找名为的定义Person.