我有四个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()
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
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()
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"
我的问题是如何在new2.py中访问id value
...
如果我将从main.py获取值,为了调用类我需要传递new2.py没有的id值。对于new.py也一样,我需要id来创建一个类的对象。
答案 0 :(得分: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
答案 1 :(得分:0)
你的问题,就目前而言,没有意义。
您问的是如何从id
或main.py
获取new.py
值。但在其中任何一个中都没有id
值。每个id
实例和每个main.Details
实例中都有一个单独的new.Name1
成员。可能有3000个,或者其中0个。
您需要知道要从中获取Details
的{{1}}或Name1
个实例。一旦你知道,这很容易:
id
这实际上是类的全部要点 - 类定义了可以多次独立实例化的数据和操作的集合。如果那不是你想要的,你不应该使用一个类。