title: Pandas NaT explicit instantiation and assertion using pd.isna
body: <p>I am working with datetimes and for a set of reasons I need to handle <code>NaT</code> values. This is no big deal. But I just bumped into a curious situation while implementing unit tests:</p>
  <pre><code>import pandas as pd
  s = pd.Series([pd.Timestamp.now(), None])
  0   2022-02-04 08:46:35.458897
  1                          NaT
  dtype: datetime64[ns]
  
  type(s[1])
  pandas._libs.tslibs.nattype.NaTType
  
  pd.isna(s[1])
  True
  
  pd.isna(type(s[1])())  # unexpected
  False
  
  type(s[1])()
  NaT
  </code></pre>
  <p>I wonder why <code>unexpected</code> above was observed and <strong>that is my question</strong>.</p>
  <p>Context: discovered this when trying to explicitly instantiate a <code>NaT</code> for testing purposes (eg <code>pandas._libs.tslibs.nattype.NaTType()</code>). Solution: using exactly <code>s[1]</code> as from above.</p>