Недавно я наткнулся на код для создания линейчатых диаграмм, и мне интересно, зачем нужен метод stati c для функции в python. Вдобавок к этому, почему self.function_name используется для статического метода. Вот код:
class Foo :
@staticmethod
def make_bar_plot(values, labels, title, ylabel='Activity Count', step=10):
x_pos = np.arange(len(labels))
plt.bar(x_pos, values, align='center', alpha=0.5)
plt.xticks(x_pos, labels)
plt.yticks(np.arange(0, max(values) + step, step))
plt.ylabel(ylabel)
plt.title(title)
for index, val in enumerate(values):
plt.text(x=index, y=val+1, s=f'{val}')
plt.show()
def get_daywise_activity_stats(self, event_name, no_of_days):
query = """select edate, count(*)
from %s
where ip_address not in (
select distinct(ip_address)
from activity_classic_class_section_start
where edate <'2019-12-31')
group by edate order by edate desc limit %s;
"""%(event_name, no_of_days)
event_dict = {ele[0].strftime("%m/%d/%Y"):ele[1] for ele in self.rs_conn.query(query)}
print (event_dict)
labels = list(event_dict.keys())
values = list(event_dict.values())
self.make_bar_plot(values, labels, 'Daywise_activity_stats -> '+event_name)
Не работают ли методы stati c без self.function_name и не работают с class_name.function_name или я что-то упустил здесь что-то важное?