-1

私は以下のコードを持つ4つのPythonスクリプトを持っています:

main.py

from new import Name1
from new2 import Name2

class Details:

    def __init__(self, id=0, vuse=True):
        assert(id > 0)
        self.id = id
        self.vuse = vuse

    def Main(self):
        try:
            self.dir = "/value/"
            ti = Name1(id = self.id, dir = self.dir)
            name = ti.getDay()
            print name
        except Exception, e:
            print "Failed with %s" % e

if __name__ == "__main__":
    at = Details(id = '1', vuse=True)
    at.Main()

new.py

class Name1:

    def __init__(self,id,dir=''):
        self.id = id
        self.dir = dir

    def getDay(self):
        try:
            if id == 1:
                self.day = "monday"
                print "Name %s" % self.day
                return self.day
            else:
                self.day = "Another"
                print "Day %s" % self.day
                return self.day
        except Exception, e:
            print "ERROR : %s" % e

new2.py

from find import Find
from main import Details

class Name2:

    def getitems(self):
            self.id = "// This value i want from main.py or new.py script"
        at = Find(id = self.id )
        val = at.value()
        print val

if __name__ == "__main__":
    a = Name2()
    a.getitems()

find.py

class Find:

    def __init__(self, id):
        self.id = id

    def value(self):
        if self.id == 1:
            print "Right value"
            ##// Do some operation with id//

        else:
            print "invalid"

私の問題はid value、new2.pyでどのようにアクセスできるかです... main.pyから値を取得する場合、クラスを呼び出すために、new2.pyが持っていないid値を渡す必要があります。new.pyについても同じことですが、クラスのオブジェクトを作成するにはidが必要です。

4

2 に答える 2

0

プログラムがどのように機能するかは明確ではありませんが、Name2のインスタンスでidを作成するときに初期化できます。

def Main(self):
    self.dir = "/value/"
    ti = Name1(self.id, self.dir)
    ti_2 = Name2(self.id)

class Name2:
    def __init__(self, id):
        self.id = id

または、引数としてgetitemsに渡します。

def Main(self):
    self.dir = "/value/"
    ti = Name1(self.id, self.dir)
    ti_2 = Name2()
    ti_2.getitems(self.id)

class Name2:
    def getitems(self, id):
        self.id = id
于 2013-01-28T08:07:06.240 に答える
0

あなたの質問は、現状では意味がありません。

またはidから値を取得する方法を尋ねています。しかし、どちらにも価値はありません。各インスタンスと各インスタンスに個別のメンバーがあります。それらの3000、またはそれらの0があるかもしれません。main.pynew.pyididmain.Detailsnew.Name1

DetailsどのインスタンスまたはName1インスタンスから取得するかを知る必要がありますid。それを知ったら、それは簡単です:

my_details.id

これは実際にはクラスの要点です。クラスは、複数回独立してインスタンス化できるデータと操作のコレクションを定義します。それがあなたが望むものでないなら、あなたはクラスを使うべきではありません。

于 2013-01-28T09:50:41.167 に答える