0

以下の2つのファイルがあります。

File1.py

    import os

    import config
  class session():

    def __init__(self):
         self.appCoordinates = (0, 0, 1024, 768)


def startApp(self):
    session_launch = App("Packets and Protocols")
    if not session_launch.window():
        path1= "C:\\Program Files (x86)\\ABC\\XYZ\\RT900"
        ver=config.version
        path2="bin\\Rt900.exe"
        path3=os.path.join(path1,ver)
        path4=os.path.join(path3,path2)
        App.open(path4);
        wait(25)
    session_launch.focus(); wait(10)

File2.py

    import File1
    class ospf():

         def _init_(self):
                  Add = File1.session()
          self.appCoordinates = (0, 0, 1024, 768)

         def startOspf(self):
            Add.startApp()

関数をインポートしようとするたびに、つまり、startApp を File1.py から File2.py にインポートします。エラーメッセージを下回っています。

"NameError: グローバル名 'Add' が定義されていません"

問題が何であるかを知ることができますか?

4

2 に答える 2

0

「Add」を使用する代わりに、「self.Add」を使用してください。変数 Add をクラス/オブジェクトのメンバーにします。

>>> class Complex:
...     def __init__(self, realpart, imagpart):
...         self.r = realpart
...         self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)

このリンクは、「自己」の意味をよく理解するのに役立つかもしれません。

于 2013-02-13T11:59:51.510 に答える
0

クラスAddのメンバーを作成する必要があります。ospf

このようなもの:

import File1
class ospf():
     def _init_(self):
         self.Add = portadd.n2xSession()
         self.appCoordinates = (0, 0, 1024, 768)

     def startOspf(self):
         self.Add.startApp()
于 2013-02-13T11:49:31.023 に答える