【问题标题】:Error to run created Class: 'module' object is not callable运行创建的类时出错:“模块”对象不可调用
【发布时间】:2021-03-25 13:12:15
【问题描述】:

刚刚创建了这个类来打印一些交互式图表,但我遇到了不同的错误。最近的是:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-29-ee093d057bde> in <module>
     25 
     26 if __name__ == '__main__':
---> 27     ChartsPropylene()

<ipython-input-29-ee093d057bde> in __init__(self)
      1 class ChartsPropylene():
      2     def __init__(self):
----> 3         self.start_date=dt(2008, 4, 24)
      4         self.end_date=dt(2020, 5, 24)
      5         self.dates=pd.date_range(self.start_date, self.end_date, freq='D')

我创建的类代码如下:


import sys, os
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import ipywidgets as widgets
from ipywidgets import interact
import cufflinks as cf
import datetime as dt
from IPython import display

class ChartsPropylene():
    def __init__(self):
        self.start_date=dt(2008, 4, 24)
        self.end_date=dt(2020, 5, 24)
        self.dates=pd.date_range(self.start_date, self.end_date, freq='D')
        self.options=[(date.strftime(' %d %b %y '), date) for date in self.dates]
        self.index=(0, len(self.options)-1)
        self.selection_range_slider=widgets.SelectionRangeSlider(options=self.options, index=self.index, description='Dates', orientation='horizontal', layout={'width':'600px'})
    def __printChart__(self):
        display(self.selection_range_slider)
        x=self.selection_range_slider.get_interact_value()[0].toordinal()
        y=self.selection_range_slider.get_interact_value()[1].toordinal()
        abs1=abs(y-x)
        plt.figure(figsize=(18, 10))
        sns.set(style="darkgrid")
        palette2=sns.color_palette("mako_r", 3)
        sns.lineplot(x="Date", y="Value", hue='Std_Type', style='Value_Type', sizes=(.25, 2.5), ci='sd', estimator=None, lw=1, palette=palette2, data=tbl4)
        rectangle1=plt.Rectangle(xy=(x, 500), width=abs1, height=500, linewidth=2, color='red', facecolor='blue', joinstyle='round', alpha=0.1, fill=True)
        rectangle2=plt.Rectangle(xy=(x, 500), width=abs1, height=500, linewidth=2, color='red', facecolor='blue', joinstyle='round', alpha=1, fill=False)
        plt.gca().add_patch(rectangle1)
        plt.gca().add_patch(rectangle2)
        plot.show(10)

我做错了什么?

我尝试导入类并运行,但出现了同样的错误。

【问题讨论】:

标签: python matplotlib jupyter-notebook python-class


【解决方案1】:

datetime(您的代码中的dt)不可调用,它是一个模块。

您的意思是dt.date(2008, 4, 24),或者可能是import datetime.date as dt(我猜如果您称它为dt,第一个更有意义......)。 datetime.datedatetime 内部的一个可调用类。

您的问题中没有提到但值得一提(不要在稍后阶段混淆)是datetime.datetimedatetime 中的另一个可调用类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 2013-07-23
    • 1970-01-01
    • 2018-11-28
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多