python导入自己的类_如何导入类名python

Here is my python folder structure (it does not have any python package):

folder/

script1.py

script2.py

script1 has:

class myclass(object):

def __init__():

print("in init")

def showReport():

print("in report only function")

script2 has:

from . import myclass

and when I run python -m folder.script2

I get /usr/bin/python: cannot import name myclass

How can I import this class so that I can call functions from this class on script2?

解决方案

You say you do have a package, but you still have to reference the module script1 that contains your class myclass, so:

from .script1 import myclass

P.S. In Python it's customary to use camel case for class names, so MyClass not myclass

Example

Working example with a package called package and modules module1 and module2, then from outside package, I call python -m package.module2:

➜ ~ tree package

├── __init__.py

├── module1.py

└── module2.py

➜ ~ cat package/module1.py

class MyClass(object):

def work(self):

print 'Working!'

➜ ~ cat package/module2.py

from .module1 import MyClass

if __name__ == '__main__':

worker = MyClass()

worker.work()

➜ ~ python -m package.module2

Working!

### 回答1: 在Python中,我们可以使用import语句来导入其他页面的。要导入其他页面的,首先需要确保这个所在的页面与当前页面在同一个目录下,或者在Python路径下。然后,可以使用如下的语法来导入: ```python from 文件名 import 类名 ``` 其中,文件名是指被导入所在的文件名,而类名则是指要导入的名称。 另一种导入的方式是使用import语句,语法如下: ```python import 文件名 ``` 在这种情况下,我们可以通过文件名和点操作符来访问所需的。例如,如果要访问名为MyClass,可以使用以下方式来实现: ```python import 文件名 实例化对象 = 文件名.MyClass() ``` 值得注意的是,当导入其他页面的时,被导入的页面会被执行一次。为了避免这种情况,可以将执行代码放在一个可调用的函数中,并且只在需要时调用这个函数。 综上所述,Python导入其他页面的可以通过import语句或者from...import语句来实现,在导入时需要确保所在的页面与当前页面在同一个目录下或者在Python路径下。 ### 回答2: 在Python中,我们可以使用import语句来导入其他页面(模块)中的导入其他页面的有助于组织代码、提高代码的可维护性和复用性。 使用import语句导入其他页面的的基本语法如下: ``` from 模块名 import 类名 ``` 其中,模块名是指包含目标Python页面的文件名,类名是指我们想要导入的目标的名称。 例如,假设有一个文件名为"其他页面.py"中包含了一个名为"目标"的,我们可以使用以下语句来导入: ``` from 其他页面 import 目标 ``` 导入后,我们就可以在当前页面中使用该目标了。如果其他页面的有一样的名称,我们还可以使用如下语句进行重命名导入: ``` from 其他页面 import 目标 as 新类名 ``` 此时,我们可以使用新的类名来调用目标。 另外,除了上述的语法,我们还可以使用import语句导入整个页面的所有,例如: ``` import 其他页面 ``` 这样,我们可以使用"其他页面.目标"的方式来调用目标。 总结起来,Python中通过import语句可以轻松地导入其他页面的,提高代码的灵活性和重用性。 ### 回答3: 在Python中,可以使用`import`关键字来导入其他页面的。 首先,确保需要导入所在的页面(文件)与当前页面在同一个目录下,或者在Python的搜索路径中。然后,可以使用以下方式导入其他页面的: 1. 导入整个页面的所有: ```python import page_name ``` 其中,`page_name`是需要导入的页面的文件名(不包含`.py`后缀)。导入后可以使用`page_name.class_name`的方式来访问被导入页面中的。 2. 仅导入需要的: ```python from page_name import class_name ``` 其中,`page_name`是需要导入的页面的文件名(不包含`.py`后缀),`class_name`是需要导入类名导入后可以直接使用`class_name`来访问导入。 如果被导入的页面不在同一个目录下,可以使用相对路径或绝对路径来导入: - 相对路径导入: ```python from ..package_name import page_name ``` 其中,`..`表示上级目录,`package_name`是上级目录的名称。 - 绝对路径导入: ```python import module_name ``` 其中,`module_name`是被导入页面的完整路径。 值得注意的是,如果页面被导入后,其中定义的已经被实例化或执行了其他操作,再次导入将不会重新执行该页面中的代码,而是会直接使用已有的实例化对象或执行结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值