from typing import Any, Tuple


def 取唯一成员数量(元组数据: Tuple[Any, ...]):
    """返回元组中唯一成员的数量。

    Args:
        元组数据: 待统计的元组。

    Returns:
        成功时返回唯一成员数量；失败时返回 ``None``。
    """
    try:
        if not isinstance(元组数据, tuple):
            return None

        唯一成员 = []
        for 元素 in 元组数据:
            if 元素 not in 唯一成员:
                唯一成员.append(元素)
        return len(唯一成员)
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：基础唯一数量统计 =====")
    数据 = (1, 2, 2, 3, 1, 4)
    print("结果:", 取唯一成员数量(数据))

    print("\n===== 示例2：全部不重复 =====")
    数据 = ("a", "b", "c")
    print("结果:", 取唯一成员数量(数据))

    print("\n===== 示例3：空元组 =====")
    数据 = ()
    print("结果:", 取唯一成员数量(数据))

    print("\n===== 示例4：包含不可哈希成员 =====")
    数据 = ([1], [1], {"x": 1}, {"x": 1})
    print("结果:", 取唯一成员数量(数据))

    print("\n===== 示例5：布尔值与数字相等性 =====")
    数据 = (0, False, 1, True, 2)
    print("结果:", 取唯一成员数量(数据))

    print("\n===== 示例6：应用场景-统计不重复访客来源数量 =====")
    来源列表 = ("百度", "知乎", "百度", "公众号", "官网", "知乎")
    print("结果:", 取唯一成员数量(来源列表))
