2016-04-14 99 views
0

我在訪問另一個類的方法中的變量時遇到問題。訪問python中單獨類中的單獨方法的列表

我會簡單地解決我的問題,下面有三個主要的類,我只會放兩個類,否則它可能會過於複雜的東西。

from C import* 
Athlete = C() 

class A(object): 

    def Runner(self,runNumber): 

     Athlete.Calculation(runNumber): 
     NumofLaps = Athlete.GetLaps #this is a list so NumofLaps will be a List 

類C是我沒有在這裏包括一個單獨的類,它的作用是返回存儲在該計算方法的列表。 A類以上是我想要使用類Main訪問的類。如下所示,

from A import* 
RunnerList = A() 
class Main.py 

    def RunnerNumber(): 
     number=1 
     RunnerList.Runner(number) 
     number = number + 1 
     #code to access the NumofLaps List goes here 

我面臨的問題是調用方法在調用它時需要輸入。 (例如:RunnerList.Runner(number))。這對代碼至關重要,我真的不想改變它。

但是有沒有什麼辦法可以在RunnerNumber方法下從Class Main的A類Runner方法中訪問「NumofLaps」列表。

例如:

RunnerList.Runner(number).NumofLaps 

回答

0

不能直接訪問的方法中的變量,但你可以把它傳遞給A類的自我:

from C import* 
Athlete = C() 

class A(object): 

    def Runner(self,runNumber): 

     Athlete.Calculation(runNumber): 
     self.NumofLaps = Athlete.GetLaps #this is a list so NumofLaps will be a List 

然後,您可以訪問列表通過調用:

RunnerList = A() 
RunnerList.Runner(number) 
the_list_you_need=RunnerList.NumofLaps 
RunnerList = A() 
RunnerList.Runner(number) 
the_list_you_need=RunnerList.NumofLaps 
+0

嗨哈里,感謝您的答覆,但如果我將它傳遞給類A的自我,我必須寫一個單獨的方法稱爲d ef __init __(self): – DrakonianD

+1

不,在'__init__'之前''self'由一個名爲'__new __()'的方法創建。 '__init__'就是在這裏初始化你的實例在創建,但你不必實現它,如果你不需要初始化。 – CoMartel