2016-08-08 5 views
0

나는 왜 내 코드 아래 반환 null, 인쇄 명령 적절한 값을 반환 궁금해서, 아무도 내 설명 할 수 있을까?반환 클래스 내에서 null

class Newclass: 
    def __init__(self,portal): 
     config = configparser.ConfigParser() 
     config.read("config.ini") 
     self.connection_source=config.get(portal,'Sources') 
    def getPortalSources(self): 
     # print (connection_source) ## Sources 
     return self.connection_source 

emp1 = Newclass('portalname')  
emp1.getPortalSources() 
+0

무엇 "return null"을 의미합니까? '없음'을 의미합니까? 콘솔의 디스플레이와'return '을 혼동하고 있습니까? – cdarke

답변

2

당신은 함수를 호출하지만 반환 값을 가지고 아무것도하지 않습니다.

봅니다 실제로 그것을 가져 오기 및 인쇄 :

emp1 = Newclass('portalname')  
value = emp1.getPortalSources() 
print(value) 

당신은 또한 잡으려고 할 수 Sources는 설정 파일에없는 경우 발생하는 대기 configparser.NoOptionError 그 :

try: 
    self.connection_source = config.get(portal,'Sources') 
except configparser.NoOptionError: 
    print("Couldn't find 'Sources' in conf file") 
+0

알겠습니다. 감사합니다. – bazyl

+0

'ConfigParser.get()'은'KeyError'보다는'configparser.NoOptionError'를 던졌습니다. (또한'KeyError'의 서브 클래스도 아닙니다). – Duncan

+0

@Duncan 나는 정정 당한다. 내가 너무 오랫동안 그것을 위해 사용자 정의 하위 클래스와 함께 일한 것 같아요 .. :) – DeepSpace

1
import configparser, os 


class ConfigIni(dict, configparser.ConfigParser): 
    def __init__(self, file): 
     configparser.ConfigParser.__init__(self) 
     self.iniFile=file 
     if os.path.isfile(self.iniFile): 
      self.read(self.iniFile) 
      for section in self.sections(): 
       self[section] = {} 

       for var in self.options(section): 
        val = self.get(section, var) 
        self[section][var] = val 


f=os.path.join(os.getcwd(), 'config.ini') 
print(ConfigIni(f))