Что более питоническое? Изменить на месте или вернуть значение [закрыто]

Конечно

write-host ($obj | Select -ExpandProperty "SomeProp")

Или, если это важно:

$obj."SomeProp"
2
задан Marcel B 16 January 2019 в 13:02
поделиться

1 ответ

Чтобы проиллюстрировать ответ Шлема с помощью питонического решения:

class Game:

    VALUES = list(range(1, 10))
    COLORS = ["Red", "Blue", "Yellow", "Green"]

    @classmethod
    def create_draw_stack(cls):
        return  [Card(value, color) for value in cls.VALUES for color in cls.COLORS]       

    def __init__(self, players_count=2, cards_count=7):
        self.draw_stack = self.create_draw_stack()
        self.play_stack = [self.draw_stack.pop()]

Также вы спросили:

Существует ли эмпирическое правило для интуитивного понимания таких вопросов?

«Интуитивно» часть - это, главным образом, вопрос опыта («опыт» - это не то же самое, что «время, потраченное на что-то» - это также подразумевает чтение, эксперименты, мышление и т. Д.). [ 1111]

wrt / «правило большого пальца»:

  • высокая сплоченность: одна «единица» - будь то модуль, класс, метод или функция - должна состоять из одного и только из одного (иногда эта «одна вещь» может быть довольно широкой, но в любом случае)
  • локальность: вещи, которые работают вместе, должны храниться вместе (поэтому вам не нужно открывать дюжину файлов в вашем редакторе, чтобы узнать, как все это работает работа)
  • слабая связь: один «блок» должен напрямую зависеть от как можно меньшего числа других блоков
  • читаемость: код должен быть как можно более очевидным и читаемым (хорошо, некоторые субъективные части здесь )
  • тестируемость: код должен легко тестироваться изолированно (ср. «Слабая связь»)
  • простота: код должен быть как можно более простым в зависимости от сложности задачи.
  • удобство использования: ваш «модульный» API должен быть максимально простым в использовании для клиентского кода
0
ответ дан bruno desthuilliers 16 January 2019 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: