Как установить смещение для нескольких методов в классе? - PullRequest
1 голос
/ 24 января 2020

Отказ от ответственности: Python newb

Мой код

class summation():

    def __init__(self, num_1, num_2):

        self.add_1 = num_1 + num_2
        self.multiply = num_1 * num_2
        self.divide = num_1 / num_2
        self.difference = num_1 - num_2 

    def summate(self):
        return '{}'.format(self.add_1)

    def mult(self):
        return '{}'.format(self.multiply)

    def divis(self):
        return '{}'.format(self.divide)

    def diff(self):
        return '{}'.format(self.difference)

input_values = summation(int(input()), int(input()))

print('Sum =', input_values.add_1)
print('Multiplied =', input_values.multiply)
print('Divided =', input_values.divide)
print('The difference between the two values is ',input_values.difference)```

Я хочу включить метод смещения, который будет принимать значения, введенные пользователем, и применять к ним смещение, которое может быть легко измененным

Пользовательские входы IE (2) и (3) и смещение применяет к ним множитель 1,02

, поэтому что-то, что начинается следующим образом

bias = 1.04

def apply_bias(self):
        return input_values * bias

Очевидно, это не работает, но дает вам представление

У кого-нибудь есть идеи? Приветствия

1 Ответ

0 голосов
/ 24 января 2020

Не уверен, что вы собираетесь делать, но я думаю, что одно из них должно сработать для вас.

bias = 1.04

# Accept two values multiply them and the bias and return one result
def apply_bias(self, first, second):
    return (first * second) * bias

# or if you want to accept two values and return a tuple of two results
def apply_bias(self, first, second):
    return first * bias, second * bias

Редактировать после прочтения вашего комментария, я думаю, что я понимаю лучше. Попробуйте это:

class Summation:
    def __init__(self, first, second, bias=1.04):
        self.first = first
        self.second = second
        self.bias = bias

    def summate(self, include_bias=False):
        result = self.first + self.second
        if not include_bias:
            return result
        return result * self.bias

    def mult(self, include_bias=False):
        result = self.first * self.second
        if not include_bias:
            return result
        return result * self.bias

    def divis(self, include_bias=False):
        result = self.first / self.second
        if not include_bias:
            return result
        return result * self.bias

    def diff(self, include_bias=False):
        result = self.first - self.second
        if not include_bias:
            return result
        return result * self.bias

    def apply_bias(self, bias):
        self.bias = bias

    def summary(self, include_bias=False):
        print(f'Sum = {input_values.summate(include_bias)}')
        print(f'Multiplied = {input_values.mult(include_bias)}')
        print(f'Divided = {input_values.divis(include_bias)}')
        print(f'The difference between the two values is {input_values.diff(include_bias)}')


input_values = Summation(int(input("first:")), int(input("second:")))
input_values.summary()
str_bias = input("bias:")
if str_bias:
    input_values.apply_bias(float(str_bias))
    input_values.summary(True)

Это напечатало бы то, что вы описываете

first:2
second:2
Sum = 4
Multiplied = 4
Divided = 1.0
The difference between the two values is  0
bias:1.04
Sum = 4.16
Multiplied = 4.16
Divided = 1.04
The difference between the two values is  0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...