Puncte:0

este posibil să apelați dinamic o funcție prin cli într-un script python

drapel in

Încerc să apelez o anumită funcție atunci când invoc acest script Python, adică am mai multe funcții în acest script. Am încercat să folosesc globale, dar nu aluat.

#!/usr/bin/python3

"""
Acest modul este folosit pentru a accesa cheia contului de serviciu stocată în secretul managerului secret
"""


import sys
import argparse

import json
import datetime
import argparse

def parse_arguments():

    parser = argparse.ArgumentParser(description='Acreditările cheii contului de serviciu', formatter_class=argparse.RawDescriptionHelpFormatter)

    parser.add_argument('-p', '--nume_proiect',
                        metavar='<nume_proiect>',
                        help='Numele proiectului GCP pentru a prelua acreditările cheii contului de serviciu stocate în secretul managerului secret',
                        necesar=Adevărat)

    parser.add_argument('-n', '--nume_secret',
                        metavar='<nume_secret>',
                        help='numele secretului în care este stocată acreditările contului de serviciu',
                        necesar=Adevărat)

    parser.add_argument('-e', '--email_id',
                        metavar='<email_id>',
                        help='numele secretului în care este stocată acreditările contului de serviciu',
                        necesar=fals)

    parseri = parser.parse_args()
    parsoare de întoarcere


def sa_credentials():
    """
    Aceasta este metoda principală de a prelua secretul managerului secret, care constă în acreditările contului de serviciu
    """
    opțiuni = parse_arguments()
    imprimare (opțiuni)

    nume_proiect = opțiuni.nume_proiect
    nume_secret = opțiuni.nume_secret

    print("A funcționat")

if __name__ == "__main__":
    globals()[sys.argv[1]]

Așa îl rulez, dar nu se întâmplă nimic

# ./test.py sa_credentials -p the-webbing-330212 -n my-secret
Puncte:1
drapel cn

Nu este o practică bună să invocați o metodă prin argument, poate fi o defecțiune de securitate

Ar trebui să folosești ceva de genul python test.py „call_function_one” [...]

Și apoi, în scriptul tău, trebuie să primești argumentul și să faci:

dacă (arg[0] == 'call_function_one'):
  function_one(parametri)

Un alt lucru, vă puteți analiza direct argumentul în dvs principal, este o modalitate obișnuită de a folosi argument_parser și apoi de a vă apela funcțiile :)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.