Передача вывода метода другому методу в Python - PullRequest
0 голосов
/ 12 сентября 2018

Я новичок в понятиях объектов и классов;Мне было интересно, есть ли лучший способ получить доступ к выводу метода и передать его другому?

class cafec_param:

    def __init__(self,precip,pe,awc,nmonths):

        self.precip = precip
        self.pe = pe
        self.awc = awc
        self.nmonths = nmonths

    def AWC(self):

        if self.awc<254:
            Ss = self.awc
            Su = 0
        else:
            Ss = 254; Su = self.awc-254
        AWC = Ss + Su
        return AWC,Ss,Su

    def test(self):
        p = cafec_param.AWC(self)[0]
        return p

Каковы возможные способы передачи, скажем, Ss и Su в другой метод?Спасибо

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Лучший подход для вызова метода внутри другого метода в классе.

class cafec_param:

    def __init__(self,precip,pe,awc,nmonths):

        self.precip = precip
        self.pe = pe
        self.awc = awc
        self.nmonths = nmonths

    def AWC(self):

        if self.awc<254:
            Ss = self.awc
            Su = 0
        else:
            Ss = 254; Su = self.awc-254
        AWC = Ss + Su
        return AWC,Ss,Su

    def test(self):
        return self.AWC()[0]



ee=cafec_param('re',34,56,2)
print(ee.test())
0 голосов
/ 12 сентября 2018

Вы можете вызвать указанный метод изнутри AWC:

   def AWC(self):

        if self.awc<254:
            Ss = self.awc
            Su = 0
        else:
            Ss = 254; Su = self.awc-254
        AWC = Ss + Su
        this.your_method(Ss, Su)
        return AWC,Ss,Su

или получите вывод AWC в коде, который вызывает AWC, а затем передайте Ss и Su в ваш метод:

cparam = cafec_param(precip,pe,awc,nmonths)
AWCres, Ss, Su = cparam.AWC()
cparam.your_method(Ss, Su)

Обратите внимание, что я использовал имена для класса, методов и переменных, которые вы указали, чтобы мой ответ был легче понять. Тем не менее, вам, вероятно, стоит взглянуть на Соглашения об именах Python , чтобы сделать ваш код более читабельным, более легким для понимания и поддержки.

Надеюсь, я помог! :)

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