2013-02-17 1 views

답변

8

파이썬 dir() function은 모듈이 정의하는 이름을 찾는 데 사용됩니다.

우리는 Mirrors를 사용할 수 있으며 (또는 적어도 매우 유사) 우리 자신에 상응하는 함수를 작성 :

import 'dart:mirrors'; 

List<String> dir([String libraryName]) { 
    var lib, symbols = []; 

    if (?libraryName) { 
    lib = currentMirrorSystem().libraries[libraryName]; 
    } else { 
    lib = currentMirrorSystem().isolate.rootLibrary; 
    } 

    lib.members.forEach((name, mirror) => symbols.add(name)); 

    return symbols; 
} 

지금 여기 예입니다 :

class Hello {} 

bar() => print('yay'); 

main() { 
    var foo = 5; 

    print(dir()); // [main, bar, Hello, dir] 
} 

또는 라이브러리를 지정

print(dir('dart:mirrors')); 

[MirroredError, TypeMirror , ObjectMirror, _LazyLibraryMirror, TypeVariableMirror, MirrorException, ClassMirror, MirrorSystem, _LocalMirrorSystemImpl, _LocalVMObjectMirrorImpl, DeclarationMirror, _LazyTypeMirror, _LocalClosureMirrorImpl, mirrorSystemOf, _LazyFunctionTypeMirror, _filterMap, MirroredCompilationError, _Mirrors, _LocalClassMirrorImpl, _LocalInstanceMirrorImpl, _LocalTypedefMirrorImpl, _LocalFunctionTypeMirrorImpl, 반영 MethodMirror, _LocalVariableMirrorImpl, LibraryMirror, _LocalIsolateMirrorImpl, FunctionTypeMirror, _LocalLibraryMirrorImpl, 거울, _LocalObjectMirrorImpl, _LocalMirrorImpl, _makeSignatureString, _LocalTypeVariableMirrorImpl, 주석 MirroredUncaughtExceptionError, _LocalParameterMirrorImpl, _LazyTypeVariableMirror, TypedefMirror, VariableMirror, IsolateMirror, currentMirrorSystem, _dartEscape, _LocalMethodMirrorImpl, 클리오 sureMirror, VMReference, ParameterMirror, InstanceMirror, _isSimpleValue, SourceLocation]

이 말 그대로 특정 라이브러리 (모듈)에 정의 된 내용을 알려줍니다. 이제는 파이썬의 함수와 약간의 차이가있을 수 있습니다.이 함수는 이름을 정렬하는 것으로 보이지만, 이것은 당신에게 당황 스럽습니다.