导入类并调用方法

RKh*_*RKh 0 python

我正在使用Eclipse进行Python编程.

在我的项目中,我有一个文件:main.py. 此文件位于项目文件层次结构的根目录中.在root本身中,我创建了一个名为Classes的文件夹,其中我有一个名为PositionWindow.py的类文件.该文件包含一个PositionWindow类,该类本身包含一个名为:Center()的函数.

在main.py中,我想导入这个类[PositionWindow],然后在适当的地方调用该函数中心.

我无法在main.py中正确导入该类,也无法在以后如何调用该函数.

nos*_*klo 5

你好像用java编程了.我知道你用了很长时间的java,但这不再是java了.这是蟒蛇......

  • Python没有目录.它有包裹
  • Python没有类文件.它有模块.
  • 您可以在模块中拥有多个类.
  • 您可以在包中包含多个模块.

我建议你至少阅读python基础教程(特别是关于包和模块部分),这样你就可以学习python,而不是试图猜测语言.

关于项目的结构,这篇文章非常好,并向您展示了如何做到这一点.

无耻的复制粘贴:

Python项目的文件系统结构

作者:Jp Calderone

做:

  • 将目录命名为与项目相关的内容.例如,如果您的项目名为"Twisted",请为其源文件命名顶级目录Twisted.执行发布时,应包含版本号后缀:Twisted-2.5.
  • Twisted/bin如果有的话,创建一个目录并将可执行文件放在那里..py 即使它们是Python源文件,也不要给它们扩展.除了导入和调用项目中其他地方定义的main函数之外,不要在其中添加任何代码.
  • 如果您的项目可以表示为单个Python源文件,那么将其放入目录并将其命名为与项目相关的内容.例如,Twisted/twisted.py.如果您需要多个源文件,请改为创建一个包(Twisted/twisted/,使用空 Twisted/twisted/__init__.py)并将源文件放入其中.例如, Twisted/twisted/internet.py.
  • 将您的单元测试放在包的子包中(注意 - 这意味着上面的单个Python源文件选项是一个技巧 - 您总是需要至少一个其他文件用于您的单元测试).例如, Twisted/twisted/test/.当然,让它成为一个包 Twisted/twisted/test/__init__.py.将测试放在像 Twisted/twisted/test/test_internet.py.
  • 如果你感觉很好,分别添加Twisted/READMETwisted/setup.py解释和安装你的软件.

别:

  • 将您的源放在名为src或的目录中lib.这使得在没有安装的情况下很难运行.
  • 把你的测试放在你的Python包之外.这使得难以针对已安装的版本运行测试.
  • 创建一个只包含a __init__.py然后将所有代码放入的包__init__.py.只需制作一个模块而不是一个包,它就更简单了.
  • 尝试提出神奇的黑客攻击,使Python能够导入您的模块或包,而无需用户将包含它的目录添加到其导入路径(通过PYTHONPATH或其他一些机制).您将无法正确处理所有情况,当您的软件无法在其环境中工作时,用户会对您生气.