Выберите входное значение определенного аргумента или самого аргумента (argparse) для использования в качестве объекта класса - PullRequest
0 голосов
/ 29 января 2019

работает со следующим кодом:

def get_args():
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawDescriptionHelpFormatter,
        description=textwrap.dedent('''\
            The Easy PSQL CLI tool
            --------------------------------
            Easily edit your postgres configuration,
            Add users, and create databases.
            * Uses default postgres user *
            '''))
    parser._positionals.title = 'Positional arguments'
    parser._optionals.title = 'Optional arguments'
    parser.add_argument("--add-user",
                        required=False,
                        action='store',
                        default='',
                        help="Add a new PostgrSQL user")
    parser.add_argument("--del-user",
                        required=False,
                        action='store',
                        default='',
                        help="Delete a PostgrSQL user")
    parser.add_argument("--passwd",
                        required=False,
                        action='store',
                        default='',
                        help="Assign the new PostgreSQL user a password")
    args = parser.parse_args()
    args_dict = vars(args)

Мне нужно принять входное значение любого из этих аргументов, чтобы позже я мог использовать их в нескольких объектах.Предпочтительно я хотел бы превратить их в переменные, например, сделать --add-user = dbuser в качестве переменной.

Кроме того, я бы хотел сказать, если аргумент -для этого был использован add-user .. иначе --del-user делает это, например (некоторый нерабочий код):

def dbuser(self):
        if get_args.args('add-user'):
            self.cur.execute(f"create user {self.user} with password '{self.password}'")
        if get_args.args('del-user'):
            self.cur.execute(f"drop user {self.user} ")
...