-1

我有四个带有以下代码的python脚本:

主文件

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()

新的.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

新的2.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()

查找.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 valuenew2.py 中的... new.py 也一样,我需要 id 来创建一个类的对象。

4

2 回答 2

0

你的问题,就目前而言,没有意义。

您在问如何从or中获取id值。但其中任何一个都没有价值。每个实例和每个实例中都有一个单独的成员。其中可能有 3000 个,也可能有 0 个。main.pynew.pyididmain.Detailsnew.Name1

您需要知道要从哪个DetailsName1实例中获取id。一旦你知道了,这很容易:

my_details.id

这实际上是类的全部意义——一个类定义了可以独立实例化多次的数据和操作的集合。如果这不是你想要的,你不应该使用一个类。

于 2013-01-28T09:50:41.167 回答
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 回答