from typing import Any, Tuple


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

    功能说明:
        - 这个函数用于返回元组中不可哈希成员的数量。
        - 常用于从元组中读取某个成员、某一段数据，或者计算出一个统计结果。
        - 如果当前数据不适合处理，函数会返回约定好的结果，方便新手直接判断这次是否成功取到值。
"""
    try:
        if not isinstance(元组数据, tuple):
            return None
        数量 = 0
        for 元素 in 元组数据:
            try:
                hash(元素)
            except Exception:
                数量 += 1
        return 数量
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：基础不可哈希统计 =====")
    数据 = ("a", 1, (2, 3), [4])
    print("结果:", 取不可哈希成员数量(数据))

    print("\n===== 示例2：全部可哈希 =====")
    数据 = ("a", 1, True, (2, 3))
    print("结果:", 取不可哈希成员数量(数据))

    print("\n===== 示例3：全部不可哈希 =====")
    数据 = ([1], {"x": 1}, {1, 2})
    print("结果:", 取不可哈希成员数量(数据))

    print("\n===== 示例4：嵌套元组中含列表不可哈希 =====")
    数据 = ((1, 2), ([3],), "ok")
    print("结果:", 取不可哈希成员数量(数据))

    print("\n===== 示例5：空元组 =====")
    数据 = ()
    print("结果:", 取不可哈希成员数量(数据))

    print("\n===== 示例6：应用场景-统计不能直接入集合的成员数 =====")
    成员列表 = ("已支付", ["待发货"], {"x": 1}, ("已完成",))
    print("结果:", 取不可哈希成员数量(成员列表))



