运行 创建 Class 时出错:'module' 对象不可调用

Error to run created Class: 'module' object is not callable

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

---------------------------------------------------------------------------
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')

我创建的 class 代码如下:


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)

我做错了什么?

我尝试导入 class 和 运行 但出现了同样的错误。

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

你的意思是 dt.date(2008, 4, 24),或者 import datetime.date as dt(我猜如果你称它为 dt,第一个更有意义)。 datetime.datedatetime.

中的可调用 class

在你的问题中没有提到但值得一提(不要在以后混淆)是 datetime.datetimedatetime.

中的另一个可调用 class