Тип аргумента itertools.product?

Причина, по которой люди переопределяют метод ToString(), состоит в том, чтобы иметь стандартное строковое представление вашего объекта, обычно для отображения пользователю или журналу или консоли, например:

Console.WriteLine(yourClassObject);

Если вы не переопределяете ToString(), тогда его реализация по умолчанию должна вернуть полное имя вашего объекта, например:

YourNamespace.YourClassName

Изменяя унаследованную реализацию (из System.Object), тогда вы можете сделать более приятное (чтение: более красивое) представление, например:

public override string ToString()
{
    return String.Format("This instance of my object has the following: Name = {0}, Number = {1}, Date = {2}, Salary = ${3}", _name, _number, _date, _salary);
}
0
задан martineau 15 January 2019 в 21:57
поделиться

1 ответ

Сравните с itertools.chain

a = [1,2,3,4]
b = [5,6,7,8]
c = [a, b]

itertools.chain(a, b)             # 1 2 3 4 5 6 7 8
itertools.chain(c)                # [1, 2, 3, 4] [5, 6, 7, 8]

itertools.chain(*c)               # 1 2 3 4 5 6 7 8
# or chain specifically has a more-legible version of this
itertools.chain.from_iterable(c)  # 1 2 3 4 5 6 7 8

Обратите внимание, что some_function(*[a, b, c]) совпадает с some_function(a, b, c). Это называется распаковкой аргументов.

0
ответ дан Adam Smith 15 January 2019 в 21:57
поделиться
Другие вопросы по тегам:

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