Улучшить мой код с помощью Python с помощью конструктора [closed]

Я хотел бы знать, как можно улучшить эту кодировку с помощью конструктора? Этот код работает для коэффициентов преобразования в физике.

Это мой код:

# physic_convertions.py
import numpy as np

class Length:

       global factors
       global units
       
       factors = np.array([[1.0, 1.0e2, 1.0e-3, 39.37, 3.281, 6.214e-4],
                          [1.0e-2, 1.0, 1e-5, 0.3937, 3.281e-2, 6.214e-6],
                          [1.0e3, 1.0e5, 1.0, 3.937e4, 3.281e3, 0.6214],
                          [2.540e-2, 2.540, 2.540e-5, 1.0, 8.333e-2, 1.578e-5],
                          [0.3048, 30.48, 3.048e-4, 12.0, 1.0, 1.894e-4],
                          [1609.0, 1609.0e5, 1.609, 6.336e4, 5280.0, 1.0]])
       units = {'m':0, 'cm':1, 'km':2, 'in':3, 'ft':4, 'mi':5}
       unit = units

       def meters(length, unit):
              u = units[unit]
              return length * factors[0][u]

       def centimeters(length, unit):
              u = units[unit]
              return length * factors[1][u]

       def kilometers(length, unit):
              u = units[unit]
              return length * factors[2][u]

       def inches(length, unit):
              u = units[unit]
              return length * factors[3][u]

       def feet(length, unit):
              u = units[unit]
              return length * factors[4][u]

       def miles(length, unit):
              u = units[unit]
              return length * factors[5][u]

Если у вас есть другие предложения, пожалуйста, спасибо!

1 ответ
1

Вы хотите сделать факторы и единицы в качестве конструктора? Если да, то на простом языке это просто переменная внутри функции (метода). Вам нужно объявить переменную внутри этого кода:

def __init__(self):
    self.factors="something"
    self.units="something"

Это переменные, которые инициализируются сразу после создания объекта и могут использоваться в любой функции (методе) в этом классе.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *