Если вы хотите построить месяц, вы можете сделать
data.loc['2018-02',"X"].plot()
6 месяцев
data.loc['2018-02':'2018-08',"X"].plot()
, и та же логика применяется для других диапазонов
Пойди разберись! Это действительно работает. Параметры по умолчанию в функциях C++
Что случилось с простым удалением дополнительного параметра в первом объявлении и обеспечении единственной перегрузки параметра?
int foo(int x)
{
Bar bar = //whatever initialization
return foo(x,bar.baz());
}
int foo(int x,int y)
{
//whatever the implementation is right now
}
Я думаю, что это имеет тенденцию быть намного более чистым и более гибким, чем попытка использовать некоторое динамическое значение по умолчанию.
Я использовал бы две перегруженных функции:
int foo(int x, int y);
int foo(int x){return foo(x,bar);}
Если Вы позволяете передающей функции быть встроенной, то потеря производительности вероятна маленьким обнулить. Если Вы держите тело его исключительным в незаголовочном файле может быть стоимость производительности (вероятно, чтобы быть маленькой), но намного больше гибкости в реализации и уменьшенной связи.
В стандарте разделите 8.3.6 (Параметры по умолчанию), абзац 5, они дают пример, использующий просто этот подход. А именно, это вызывает это, параметры по умолчанию являются выражениями, таким образом, вызов функции применяется, хотя с ограничениями, такими как поиск имени и соответствие типов.
На моем рабочем месте мы использовали подписи как это:
void An_object::An_object(
const Foo &a,
const Bar &b,
const Strategem &s = Default_strategem()
);
позволить клиентам переопределять поведение в конструкторе класса. Это пригодилось для условного поведения, которое влияло на производительность переводчика...
Тангенциальный, но это смотрит на меня как, он представил бы проблемы зависимости в будущем. Я пошел бы с подходом stbuton.myopenid.com.
Это должно быть совершенно допустимо, чтобы вызвать глобальную функцию или сослаться на глобальный объект в этом контексте, пока объявление функции/объекта находится в объеме. Это может или не может быть желательно (с точки зрения хорошего дизайна), но это должно работать.
Попытайтесь делать панель () статической функцией членства. Это позволит любую часть программы, которая имеет такой статический класс в объеме для доступа к ней. Например:
класс Foo {общественность:
статическая международная панель ();};
Затем Вы объявили бы:
международное нечто (интервал x, интервал y = Foo:: панель ());
Если Вам нужны различные объекты, затем передают в экземпляре объекта вместо этого.