동일한 작업을 수행하는 메소드와 함수를 모두 보유하는 방법에 대한 규칙이 있습니까 (아니면이를 수행할지 여부)?같은 일을하는 방법과 기능을 모두 가지고 있습니까?
, 예를 들면, 고려
from random import choice
from collections import Counter
class MyDie:
def __init__(self, smallest, largest, how_many_rolls):
self.min = smallest
self.max = largest
self.number_of_rolls = how_many_rolls
def __call__(self):
return choice(range(self.min, self.max+1))
def count_values(self):
return Counter([self() for n in range(self.number_of_rolls)])
def count_values(randoms_func, number_of_values):
return Counter([randoms_func() for n in range(number_of_values)])
count_values
이 방법 및 기능 둘 다
결과가 "MyDie"개체에 속하기 때문에이 메서드를 사용하는 것이 좋습니다. 또한이 메서드는 MyDie
개체의 속성을 count_values
에 전달하지 않고 끌어 올 수 있습니다. 다른 한편으로는, MyDie
이외의 다른 기능에서 작동하기 위해 기능이
count_values(lambda: choice([3,5]) + choice([7,9]), 7)
이 가장 위와 같이 (코드가 반복되는 경우이 작업을 수행하는 것입니다 같은 것이 좋다; 함수가 더 이상 가정 코드의 조각이 아니라 한 줄)하거나
def count_values(self):
return count_values(self, number_of_rolls)
또는으로 count_values
방법을 대체 모두 함께 방법을 제거 단지 기능이 얻을? 아니면 다른 뭔가?