首页 > 编程语言 >python 类型提示

python 类型提示

时间:2023-05-11 14:00:31浏览次数:48  
标签:__ name python self 提示 int str 类型 def

python 类型提示

它允许开发者在代码中显式地声明变量、函数、方法等的类型信息。这种类型声明不会影响 Python 解释器的运行,它可以帮助开发人员在编写代码时更好地理解代码中的数据类型,从而提高代码的可读性和可维护性。

基本类型

# 直接定义
age: int = 1
# 声明后定义
num: float
num = 2.0
name:str = "beike"
 
def printname(name: str) -> str:
    return f"Hello, {name}!"
 
def is_even(x: int) -> bool:
    return x % 2 == 0
 
res=printname(name)
print(res)

嵌套类型

使用标准库 typing 标记复合类型

from typing import List, Tuple, Dict, Set
 

my_list: List[int] = [1, 2, 3, 4]

my_tuple: Tuple[int, str, bool] = (1, "hello", True)

my_dict: Dict[str, int] = {"apple": 1, "banana": 2, "orange": 3}

my_set: Set[float] = {1.0, 2.0, 3.0}

复合类型

Union类型用于表示多种类型中的一种,Optional类型用于表示可选类型,Sequence 序列类型

from typing import Union
 
def func(x: Union[int, str]) -> None:
    pass
from typing import Optional, Union
 
def func(x: Optional[Union[int, str]]) -> None:
    pass
Sequence 类型的对象是可以被索引的任何东西:列表、元组、字符串、对象列表、元组列表的元组等。
def test(a: Sequence):
    print(a[0])
    ...

Generator-Iterator

from typing import Generator
 
def even_numbers(n: int) -> Generator[int, None, None]:
    for i in range(n):
        if i % 2 == 0:
            yield i
from typing import Iterator
 
class MyIterator:
    def __init__(self):
        self.current: int = 0
        self.max: int = 5
 
    def __iter__(self) -> Iterator[int]:
        return self
 
    def __next__(self) -> int:
        if self.current >= self.max:
            raise StopIteration
        else:
            self.current += 1
            return self.current

Callable

from typing import Callable
 
def apply(func: Callable[[int, int], int], a: int, b: int) -> int:
    return func(a, b)
 
def add(a: int, b: int) -> int:
    return a + b
 
result = apply(add, 3, 4)
print(result) # 输出7

自定义类型

class Person:
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age
 
def say_hello(person: Person) -> str:
    return f"Hello, {person.name}!"

其他类型NamedTuple

from typing import NamedTuple
from collections import namedtuple


Employee = namedtuple('Employee',  ["x","y"])

em = Employee(x=1, y='x')
print(em.x,em.y)


Point = NamedTuple('Point', [('x', int),
                             ('y', str)])

p = Point(x=1, y='x')
print(p.x,p.y)

参考博客

https://www.cnblogs.com/luohenyueji/p/17387538.html

标签:__,name,python,self,提示,int,str,类型,def
From: https://www.cnblogs.com/tian777/p/17390846.html

相关文章

  • 基于python爬虫技术对于淘宝的数据分析的设计与实现
    本篇仅在于交流学习本文主要介绍通过selenium模块和requests模块,同时让机器模拟人在浏览器上的行为,登录指定的网站,通过网站内部的搜索引擎来搜索自己相应的信息,从而获取相应关键字的商品信息,并进而获取数据,然后通过csv模块将数据存储到本地库中,接着在通过pandas、jieba、m......
  • python 学习-打开潘多拉的魔盒-元类(metaclass)学习
    前言在Python里面大家都比较熟悉了,通过class关键字创建一个类,这是通过硬编码来实现的。那么如何动态创建一个类呢,如果给一批数据,让它动态生成一个类?学习警告:不要轻易打开潘多拉的魔盒,潘多拉出于好奇打开一个魔盒,释放出人世间的所有邪恶:贪婪、虚无、诽谤、嫉妒、痛苦等等......
  • python用户输入
    第一讲:用户输入:定义了user_name和user_age以及user1_age3个变量,那么为什么不能让user1_age中的death_age-user_age呢?因为input中输入的都是字符串str,而death_age定义的是整数型int;无法用str去减int,所以要做个转换。那么我又去定义了个变量,user1_age,那么大家说可不可以去用去掉......
  • 自定义信息提示框dialog.js
    varowner;functiongetOwner(){ if(owner) returnowner; varowner=window; try{ if(top.document.domain==window.document.domain){ if(top.length>1) owner2=top[0]; else owner=top; } }catch(ex){ while(owner.p......
  • python基础学习-hashlib - 哈希函数模块
    hashlib-哈希函数模块参考地址:Python-Core-50-Courses/第20课:Python标准库初探.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)待补充......哈希函数又称哈希算法或散列函数,是一种为已有的数据创建“数字指纹”(哈希摘要)的方法。哈希函数把数据压缩成摘要,对......
  • python基础学习-random
    参考地址:Python-Core-50-Courses/第20课:Python标准库初探.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)待补充......random-随机数和随机抽样模块生成随机数、实现随机乱序和随机抽样,下面是常用函数的列表。getrandbits(k):返回具有k个随机比特位的整数......
  • python基础学习-os.path - 路径操作相关模块
    参考地址:Python-Core-50-Courses/第20课:Python标准库初探.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)待补充......os.path模块封装了操作路径的工具函数,如果程序中需要对文件路径做拼接、拆分、获取以及获取文件的存在性和其他属性,这个模块将会非常有帮助......
  • Python打包exe,执行报player组件缺失“File "plyer\facades\notification.py", line
    之前的打包方式:pyinstaller--onefile--windowedpythonfilename.py执行exe报错:修改打包命令:pyinstaller--onefile--windowed--hidden-importplyer.platforms.win.notificationpythonfilename.py执行新的exe,正常弹窗,错误消失,win10toast组件实现类似功能,打包也......
  • wordpress 为自定义类型文章新增自定义字段
    wordpress强大之处在于有很强的可自定义性,使得插件、主题的开发变得及其便利。就拿我们今天要说的自定义文章添加自定义字段来说,就很便捷。        比如我们要录入一个客户信息到wordpress中,那么需要的字段可不仅仅是什么标题、内容、摘要这么简单了,我们可能需要录入客户......
  • Zookeeper中watcher介绍-通知状态事件类型
    1.ZookeeperWatcher简介1.1)提供了分布式数据发布、订阅功能。1.2)引入了watcher机制来实现这种分布式的通知功能(主要触发事件:节点创建、节点删除、节点改变等)。1.3)watcher包括以下三个过程:客户端向服务端注册watcher、服务端事件发生触发watcher、客户端回调watcher得到触发事......