Передача одного и того же строкового аргумента двум различным методам класса одновременно в Python - PullRequest
0 голосов
/ 19 сентября 2019

Я хотел бы передать один и тот же аргумент в оба метода B и C одновременно, передав только один аргумент, но в настоящее время он принимает два.Я полагаю, что это возможно в синтаксисе python, и был бы признателен, если бы кто-то мог поделиться своими мыслями с решением по этому вопросу.

class A:

    def B(self, scrpt = r'', projtNam =''):

    ##my code

    def C(self, scrpt = r'', projtNam =''):

    ##my code


if __name__ == '__main__':

parser = argparse.ArgumentParser(description='Change something')
parser.add_argument('-s', dest='scrpt', type=str, help='HELP')
parser.add_argument('-p', dest='projtNam', type=str, help='HELP')

args = parser.parse_args()
scrpt = args.scrpt
projtNam = args.projtNam

Ins = A()
Ins.B(scrpt, projtNam)
Ins.C(scrpt, projtNam)

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

Похоже, вы ищете __init__ метод.

Пример:

class A:

    def __init__(self, scrpt, projtNam):
        self.scrpt = scrpt
        self.projtNam = projtNam

    def B(self):
        print(self.scrpt, self.projtNam)

    ##my code

    def C(self):
        print(self.scrpt, self.projtNam)

Ins = A("scrpt", "projtNam")
Ins.B()
Ins.C()
1 голос
/ 19 сентября 2019

Определите новый метод, который вызывает B и C.

class A:

    def B(self, scrpt = r'', projtNam =''):

    ##my code

    def C(self, scrpt = r'', projtNam =''):

    ##my code

    def D(self, scrpt = r'', projtNam =''):
        self.B(scrpt, projtNam)
        self.C(scrpt, projtNam)

...

Ins = A()
Ins.D(scrpt, projtNam)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...