Я хотел бы знать, как можно улучшить эту кодировку с помощью конструктора? Этот код работает для коэффициентов преобразования в физике.
Это мой код:
# 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 ответ
Вы хотите сделать факторы и единицы в качестве конструктора? Если да, то на простом языке это просто переменная внутри функции (метода). Вам нужно объявить переменную внутри этого кода:
def __init__(self):
self.factors="something"
self.units="something"
Это переменные, которые инициализируются сразу после создания объекта и могут использоваться в любой функции (методе) в этом классе.