2017-01-07 4 views
0

안녕하세요 키와 frecuencies 다음과 같은 사전, 한 : 나는 5 개 가장 낮은 값을 얻기 위해다음 함수를 가져 오는 방법은 무엇입니까?

dictFrec = {'22': 21, '25': 9, '47': 21, '1': 22, '28': 20, '21': 12, '10': 136, '12': 106, '17': 20, '19': 39, '33': 89, '31': 40, '48': 52, '30': 37, '37': 18, '41': 114, '36': 49, '42': 30, '7': 22, '8': 29, '18': 22, '4': 18, '14': 49, '38': 16, '34': 37, '6': 11, '2': 19, '44': 16, '35': 69, '26': 52, '39': 30, '27': 16, '40': 24, '0': 31, '3': 21, '32': 71, '5': 17, '23': 27, '24': 36, '20': 26, '46': 19, '11': 28, '29': 50, '13': 19, '9': 101, '49': 44, '15': 23, '43': 17, '45': 37, '16': 72} 

나는 클래스에서 다음과 같은 기능을 설계 :

import operator 

class getStrange: 

    def getStrangeD(my_dict): 
     strange=dict(sorted(my_dict.items(), key=operator.itemgetter(1), reverse=True)[:5]) 
     return strange 

문제가 올 때 I 가져하려고 다음과 같이

from tools import getStrange as G 
newA = G.getStrangeD(dictFrec) 

내가 가지고 :

Traceback (most recent call last): 
    File "parser.py", line 55, in <module> 
    newA = G.getStrangeD(dictFrec) 
AttributeError: module 'tools.getStrange' has no attribute 'getStrangeD' 

이 문제에 대한 지원을 받고 싶습니다.이 기능을 사용하여 코드를 더 깨끗하게 만들려고합니다.하지만이 함수를 가져 오는 방법을 잘 모르겠습니다. 문제가있는 곳이면 어디서든 지원해 주셔서 감사합니다.

/tools$ ls 
getStrange.py __pycache__ 
+0

를 사용하는. 그렇지 않으면 코드가 정상적으로 작동합니다. 당신은 아마 다른'tools' 모듈을 가져 오는 것 같습니까? 파일 이름을 확인하십시오 ('import tools; print (tools .__ file __)'). 또 다른 가능성은 스크립트를 다시 시작하지 않았고 Python이 이전 버전의 코드를 사용하고 있다는 것입니다. –

+0

이 파일의 이름은 무엇입니까? 그것은'tools.py'인가 아니면'tools/getStrange.py'입니까? – tdelaney

+0

@tdelaney 질문에이 정보를 추가했습니다. – neo33

답변

1

당신은 두 가지 문제가있어 다음과 같이

이 새로운 클래스

는 파일에 저장했다. 먼저, getStrangeD이 인스턴스 메소드로 작성되지만 self 변수는 포함되지 않습니다. 인스턴스 데이터를 사용하지 않으므로이를 대신 정적 메서드로 정의 할 수 있습니다. 둘째, 클래스의 멤버이므로 액세스 할 때 클래스 이름을 포함해야합니다.

도구/getStrange.py 당신이 클래스를 사용하는 이유

import operator 

class getStrange: 

    @staticmethod 
    def getStrangeD(my_dict): 
     strange=dict(sorted(my_dict.items(), key=operator.itemgetter(1), reverse=True)[:5]) 
     return strange 

지금 잘 모르겠어요 그것을

>>> from tools import getStrange as G 
>>> dictFrec = {'22': 21, '25': 9} # .... 
>>> newA = G.getStrange.getStrangeD(dictFrec) 
+0

감사합니다. 정말 고맙습니다. 정말 도움이되었습니다. – neo33

관련 문제