首页 > 编程语言 >在 Python 中使用 Type Hints

在 Python 中使用 Type Hints

时间:2024-10-22 13:25:50浏览次数:8  
标签:__ name Python self pet Type class def Hints

在 Python 中使用 Type Hints

  • Created: 2024-10-21T16:48+08:00
  • Published: 2024-10-22T13:08+08:00

Categories: Python

工厂方法使用 TypeVar 作为函数参数的类型注释,可以做到传入什么类型,返回什么类型。

from typing import Type, TypeVar


class Pet:
    def __init__(self):
        pass

    def set_name(self, name):
        self.name = name


class Dog(Pet):
    def __init__(self):
        super().__init__()

    def bark(self):
        echo("woof")


class Cat(Pet):
    def __init__(self):
        super().__init__()

    def meow(self):
        echo("meow")


PetClass = TypeVar("PetClass", bound=Pet)

def create_pet(pet_class: Type[PetClass]) -> PetClass:
    p = pet_class()
    p.set_name("foo")
    return pet_class()


if __name__ == "__main__":
    d = create_pet(Dog)
    d.bark()
    c = create_pet(Cat)
    c.meow()

标签:__,name,Python,self,pet,Type,class,def,Hints
From: https://www.cnblogs.com/dutrmp19/p/18492434

相关文章

  • 第十八课:Python学习之多态
    多态目标多态面向对象三大特性封装根据职责将属性和方法封装到一个抽象的类中定义类的准则继承实现代码的重用,相同的代码不需要重复的编写设计类的技巧子类针对自己特有的需求,编写特定的代码多态不同的子类对象调用相同的父类方法,产生不同的执行......
  • 第十七课:Python学习之单例模式
    单例目标单例设计模式__new__方法Python中的单例01.单例设计模式设计模式设计模式是前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对某一特定问题的成熟的解决方案使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性单例设......
  • python——扑克牌案列
    斗地主发牌程序:模拟一个斗地主发牌程序,实现对三个玩家进行手牌的派发,实现功能:**********欢迎进入XX斗地主**********请输入玩家姓名:<用户控制台输入A>请输入玩家姓名:<用户控制台输入B>请输入玩家姓名:<用户控制台输入C>洗牌中...洗牌完成!发牌中...发牌完成!A:<......
  • python--学生管理系统案列
    1.编写一个程序,模拟一个简单的学生管理系统。要求用户可以添加学生信息,查看学生列表和每个学生的信息,删除学生信息等操作。使用字典实现,键为学生的姓名,值为一个包含学生信息的字典(包括学号、班级、成绩等)。******************************欢迎使用学生管理系统************......
  • 【LeetCode】动态规划—790. 多米诺和托米诺平铺(附完整Python/C++代码)
    动态规划—790.多米诺和托米诺平铺题目描述前言基本思路1.定义2.理解问题和递推关系3.解决方法4.进一步优化5.小总结代码实现Python代码Python代码解释总结C++代码C++代码解释总结总结题目描述前言本文将详细讨论LeetCode上的"多米诺和三米诺平铺"问题。......
  • python爬虫数据存进mysql数据库
    一、安装mysql和mysqlworkbench我已经在电脑上安装了最新的mysql8.2.0,配置好环境变量,在命令提示符中以管理员的身份初始化并成功启动mysql数据库。前期因为以前的mysql没有卸载干净,导致mysql一直无法启动服务。所以一定要保证以前的mysql卸载干净才能重新安装,以前没有安装过......
  • 在Python中使用连接池
    在数据库操作中,频繁地打开和关闭连接会消耗大量的资源和时间,在一些需要高并发的场景,我们就需要连接池技术优化这一问题。本文以Python中的SQLite数据库为例,介绍如何使用连接池来提升数据操作的效率。对于使用SQLite这样的轻量级数据库,虽然连接的开销相对较小,但在高并发......
  • 这些Python代码加速工具,你都用过吗?
    优化代码的工具会让代码变得更简洁,或者更迅速!一起来了解了解吧。NumPy、SciPy、Sage和Pandas先说NumPy,它的核心是一个多维数字数组的实现。除了这个数据结构之外,还实现了若干个函数和运算符,可以高效地进行数组运算。并且对于被调用的次数进行了精简。它可以被用来进行极......
  • Python语法探索:解锁编程艺术的大门
    Python,一种被广泛赞誉为“优雅”、“明确”及“简单”的高级编程语言,自1991年由GuidovanRossum创造以来,已经从一门小众脚本语言成长为全球范围内应用于网页开发、数据分析、人工智能等多个领域的强大工具。本文旨在为初学者和进阶开发者提供一份详尽的Python语法指南,通过实例解......
  • 利用 Python 进行地理空间数据处理的工具
    本文将介绍九个常用的地理空间数据处理工具,包括GeoPandas、Fiona、Rasterio、Shapely、Pyproj、Descartes、Rtree、Geopy和Folium。这些工具覆盖了从地理空间数据读写、几何操作、坐标转换到地图绘制等多个方面,是地理信息系统(GIS)领域不可或缺的技术栈。1.GeoPandas:地理数据......