Я хотел бы установить хорошую схему именования для физических / математических величин, используемых в моем коде моделирования.Рассмотрим следующий пример:
from math import *
class GaussianBeamIntensity(object):
"""
Optical intensity profile of a Gaussian laser beam.
"""
def __init__(self, intensity_at_waist_center, waist_radius, wavelength):
"""
Arguments:
*intensity_at_waist_center*: The optical intensity of the beam at the
center of its waist in W/m^2 units.
*waist_radius*: The radius of the beam waist in meters.
*wavelength*: The wavelength of the laser beam in meters.
"""
self.intensity_at_waist_center = intensity_at_waist_center
self.waist_radius = waist_radius
self.wavelength = wavelength
self._calculate_auxiliary_quantities()
def _calculate_auxiliary_quantities(self):
# Shorthand notation
w_0, lambda_ = self.waist_radius, self.wavelength
self.rayleigh_range = pi * w_0**2 / lambda_
# Generally some more quantities could follow
def __call__(self, rho, z):
"""
Arguments:
*rho*, *z*: Cylindrical coordinates of a spatial point.
"""
# Shorthand notation
I_0, w_0 = self.intensity_at_waist_center, self.waist_radius
z_R = self.rayleigh_range
w_z = w_0 * sqrt(1.0 + (z / z_R)**2)
I = I_0 * (w_0 / w_z)**2 * exp(-2.0 * rho**2 / w_z**2)
return I
Какую последовательную схему именования вы бы предложили для физических свойств (свойств, аргументов функций и т. Д.), Чтобы сбалансировать между удобочитаемостью и краткимзапись (что формулы остаются относительно короткими)?Не могли бы вы уточнить пример выше?Или, возможно, предложить лучшую схему?
Было бы неплохо следовать указаниям PEP8 , помня, что «Глупая последовательность - это Хобгоблин Малых умов».Кажется, трудно придерживаться описательных имен при соблюдении традиционного ограничения в 80 символов на длину строки.
Заранее спасибо!