>

C/C ++에 텍스트 대체를위한 매크로 기능이 있다는 것을 알고 있으므로 여기에 예가 있습니다 :

#include <string>
#include <iostream>
using namespace std;
#define FIRST_NAME Print("Moon")
#define FAMILY_NAME Print("Sun")
string Print(string name)
{
    cout << name << endl;
    return name;
}
int main()
{
    string name = FIRST_NAME + FAMILY_NAME; 
    return 0;
}

FIRST_NAME과 FAMILY_NAME은 매크로가 Print () 함수로 대체되는 매크로임을 알 수 있습니다.

제 질문은 파이썬에 비슷한 기능이 있습니까? 또는 이런 종류의 기능을 만들려면 어떻게해야합니까?


  • 답변 # 1

    아마도 개인적이지만, 내가 말해야 할 것을 말할 것입니다 :

    매크로를 사용하는 C ++에서는 이미 좋은 방법으로 간주되지 않으며 동일한 성능을 얻을 수 있으며 함수 또는 템플릿을 사용하여 더 나은 컴파일러 검사를 수행 할 수 있습니다. 부작용을 반복 할 위험이 적거나 1 문 매크로가 아니거나 블록이 깨질 위험이 적습니다.

    따라서 매크로, 특히 C에서 매크로에 대한 합법적 인 사용은 메타 프로그래밍입니다. 예 : 부스트 전 처리기 라이브러리

    파이썬에는 딱딱한 타입이없고 오리 타입 만 있습니다. (오리처럼 짖 으면 충분합니다.)
    동적 언어 (정적 대)이며 매크로의 필요성을 완전히 제거하지는 않지만 줄입니다.

    파이썬은 맛 (철학)을 가지고 있으며,이를 pythonic 라고합니다. 매크로는 파이썬이 아닙니다. 사용하지 마세요.

    귀하의 경우에는 기능을 만드십시오.

  • 이전 node.js - 문자열 배열을 함수에 전달할 수 없습니다
  • 다음 flask socketio - flask_socketio와 멀티 프로세싱 오류 Snowflake Python 커넥터