Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按类型检查对象是否为pytz.timezone实例?_Python_Datetime_Timezone_Pytz - Fatal编程技术网

Python 如何按类型检查对象是否为pytz.timezone实例?

Python 如何按类型检查对象是否为pytz.timezone实例?,python,datetime,timezone,pytz,Python,Datetime,Timezone,Pytz,我想要这样的东西: from datetime import datetime, timezone import pytz def convert_datetime_by_timezone(timestamp_dt, to_timezone): if isinstance(to_timezone, str): return timestamp_dt.astimezone(pytz.timezone(to_timezone)) elif isinstance(

我想要这样的东西:

from datetime import datetime, timezone
import pytz

def convert_datetime_by_timezone(timestamp_dt, to_timezone):

    if isinstance(to_timezone, str):
        return timestamp_dt.astimezone(pytz.timezone(to_timezone))

    elif isinstance(to_timezone, pytz.tzinfo.??????):
        return timestamp_dt.astimezone(to_timezone)

    else:
        raise Exception("Invalid timezone: '%s'" % str(to_timezone))
但每次我创建pytz时区时,都会创建一种新类型的对象:

>>> type(pytz.timezone("UTC"))
<class 'pytz.UTC'>
>>> type(pytz.timezone("Europe/Budapest"))
<class 'pytz.tzfile.Europe/Budapest'>
>类型(pytz.时区(“UTC”))
>>>类型(pytz.时区(“欧洲/布达佩斯”))
检查此项的正确方法是什么?

查找家长,例如
BaseTzInfo
。谢谢<代码>isinstance(x,pytz.BaseTzInfo)适用于这两种情况。