当前位置: 首页 > news >正文

手机网站建设 jz.woonl如何给网站配色

手机网站建设 jz.woonl,如何给网站配色,台州建设网站制作,上海网页设计制作公司目录 一、说明 二、什么是动态类型#xff1f; 2.1 为什么要使用类型提示#xff1f; 2.2 局限性 三、基本类型提示 3.1 声明变量的类型 3.2 函数注释 四、Python 中的内置类型 4.1 原子类型与复合类型 五、函数注释 5.1 如何指定函数的参数类型和返回类型 5.2 在函数签名中… 目录 一、说明 二、什么是动态类型 2.1 为什么要使用类型提示 2.2 局限性 三、基本类型提示        3.1  声明变量的类型        3.2  函数注释 四、Python 中的内置类型 4.1 原子类型与复合类型 五、函数注释 5.1 如何指定函数的参数类型和返回类型 5.2 在函数签名中使用类型提示的示例 六、复杂类型 6.1 列表、字典、元组、集合 6.2 自选 6.3 联合 6.4 任何 七、用户定义的类型 7.1 使用类定义自己的类型 7.2 用于类型提示Type 7.3 用于创建不同类型NewType 八、泛 型 8.1 类型变量 8.2 通用 九、类型检查pyright 9.1 如何使用类型检查器验证您的类型 9.2 静态与动态类型检查 十、类型提示和文档字符串 十一、结论 一、说明         在 Python 数据工程系列的第六部分中我们探讨了类型提示如何减少错误。 以下文章是有关 Python 数据工程系列文章的一部分旨在帮助数据工程师、数据科学家、数据分析师、机器学习工程师或其他刚接触 Python 的人掌握基础知识。迄今为止本初学者指南包括 Python为促进清晰可靠的代码而提供的强大工具之一是“类型提示”的概念。你可能想知道“Python是一种动态类型的语言那么我为什么要为类型而烦恼呢         作为对编码最佳实践感兴趣的数据工程师或 Python 初学者理解和应用 Python 代码中的类型提示可能是一项真正的资产。         在本文中我们将更深入地探讨类型提示、它们的应用以及它们在 Python 编程中的优势。由于 Dagster 是一个类型注释框架我们还将解释如何在数据工程管道中使用类型来提高其可读性并使其不易出错。这就像为你未来的自己和其他可能与你的代码交互的开发人员提供一个映射 - 一个详细说明流入和流出你的函数和类的数据类型的映射。 二、什么是动态类型         Python是一种动态类型的语言。在 Java 或 C 等静态类型语言中您必须在使用变量之前声明变量的类型。例如您需要指定变量是整数、浮点数、字符串等。在 Python 中你可以在运行时之前不考虑数据类型的情况下进行编码——这是使 Python 特别适合初学者的功能之一。         例如您可以声明一个变量并直接为其赋值而无需指定其类型因此称为“动态类型”。Python 解释器在运行时隐式绑定值及其类型。 x 10 # x is an integer x Hello # now x is a string         在第一行中是一个整数。在第二行中相同变为字符串。由于其动态类型特性Python 可以无缝地处理这种转换。xx         但是这种动态特性也可能导致难以调试的错误尤其是在大型代码库或复杂的数据处理管道中其中数据流可能不会立即明显。         Python 3.5 中通过 PEP 484 作为标准库的一部分引入的类型提示允许您指定变量、函数参数或返回值的预期类型。 2.1 为什么要使用类型提示 虽然动态类型提供了灵活性但它也为潜在的错误创造了空间。这就是类型提示的用武之地。它们可以显著增强代码可读性并防止与类型相关的错误。 改进了代码可读性类型提示充当一种文档形式可帮助开发人员了解函数期望的参数类型及其返回的内容。这种增强的清晰度使代码更具可读性和更易于理解。 错误检测像“pyright”这样的工具可以用来静态分析你的Python代码。它根据类型提示检查代码中类型的一致性并在运行时之前提醒您与类型相关的错误。了解为什么Dagster团队建议完全跳过mypy只使用pyright。mypy 更好的 IDE 支持许多集成开发环境 IDE 和 linter 可以利用类型提示来提供更好的代码完成、错误检查和重构。 促进大型项目对于具有多个开发人员的大型项目类型提示对于理解整个代码库的数据结构和流非常有益。我们发布了有关如何包含和维护公共 Python 项目类型注释的指南。 2.2 局限性 运行时未强制执行 Python 的类型提示不是强制执行的而只是提示如果提供的类型与实际值不匹配Python 解释器不会引发错误。这可能会导致一种误解即类型提示可以强制实施类型安全而它们不能强制执行。 过于复杂对于小型或简单的脚本类型提示可能看起来有点矫枉过正并且可能会使本应简单明了的代码复杂化。 不灵活Python受欢迎的原因之一是它的动态性质和类型提示可以限制这一点。 三、基本类型提示         Python 的模块包含多个函数和类用于为 Python 代码提供类型提示。下面介绍如何在不同方案中应用类型提示。typing        3.1  声明变量的类型         若要为变量提供类型提示可以使用冒号符号后跟类型。下面是一个示例: age: int 20 name: str Alice is_active: bool True         此处提示为整数、字符串和布尔值。agenameis_active        3.2  函数注释         可以为函数参数和返回值提供类型提示。这有助于其他开发人员了解函数需要哪些类型的参数以及函数返回的类型。 def greet(name: str) - str: \ return fHello, {name} 在此示例中函数期望是一个字符串并将返回一个字符串。  四、Python 中的内置类型         Python 有几种内置类型。最常用的是 int表示一个整数float表示浮点数bool表示布尔值真或假str表示字符串         还有一些复杂的类型如列表、元组和字典可用于提供更详细的类型提示我们将在后面看到这些提示。         您还可以在附录中找到 Python 主要类型的列表。 4.1 原子类型与复合类型         在 Python 中在类型提示方面原子类型和复合类型之间存在区别。原子类型如 、 和 是简单且不可分割的它们的类型注释可以直接使用类型本身提供例如 。intfloatstrstr def my_function(my_string: str) - int:return len(my_string)另一方面复合类型喜欢 和 由其他类型组成在 Python 3.9 之前它们通常需要从类型模块导入特定的定义例如整数列表。ListDicttyping.List[int] from typing import Listdef my_function(numbers: List[int]) - int:return sum(numbers) 在较新版本的 Python 中您可以编写而不是 .list[str]typing.List[int] 五、函数注释         类型提示在合并到函数签名中时特别有用。这不仅允许开发人员了解函数需要什么类型的参数还可以让他们了解函数将返回什么。 5.1 如何指定函数的参数类型和返回类型         可以使用参数的符号和返回类型的符号来指定参数类型和函数的返回类型。下面是一般语法:- def function_name(arg1: type1, arg2: type2, ...) - return_type:# function body         在此语法中、、等是函数参数、 等是这些参数的类型。 是函数返回的值的类型。arg1arg2type1type2return_type 5.2 在函数签名中使用类型提示的示例         让我们考虑一个计算矩形面积的函数 def area_rectangle(length: float, breadth: float) - float:return length * breadth         在此函数中并且预期为浮点数并且该函数还返回浮点数。如果传递可以转换为浮点数的整数甚至字符串该函数仍将有效但类型提示清楚地表明它旨在处理浮点数。lengthbreadth         另一个示例可以是接受整数列表并将其总和作为整数返回的函数 def sum_elements(numbers: list[int]) - int:return sum(numbers)         在此示例中参数提示为整数列表返回类型为整数。numbers         请注意这些类型提示不会在运行时强制进行类型检查。它们是对开发人员的提示如果实际类型与指定类型不匹配Python 不会引发 a。TypeError 六、复杂类型         Python 中的类型模块提供了几个类可用于提供更复杂的类型提示。以下是一些最常用的类 6.1 列表、字典、元组、集合 、、 和类可用于分别为列表、字典、元组和集合提供类型提示。可以对它们进行参数化以提供更详细的类型提示。listdicttupleset # A list of integers numbers: list[int] [1, 2, 3]# A dictionary with string keys and float values weights: dict[str, float] {apple: 0.182, banana: 0.120}# A tuple with an integer and a string student: tuple[int, str] (1, John, True)# A set of strings flags: set[str] {apple, banana, cherry}         在这些示例中提示为整数列表是具有字符串键和浮点值的字典是包含整数和字符串的元组并且是一组字符串。numbersweightsstudentflags 6.2 自选 类型提示可用于指示变量可以是特定类型或 。OptionalNone from typing import Optionaldef find_student(student_id: int) - Optional[dict[str, str]]:# If the student is found, return a dictionary containing their data# If the student is not found, return None 6.3 联合         类型提示用于指示变量可以是几种类型之一。例如如果变量可以是 a 或 则可以提供如下类型提示Union[str,int] from typing import Uniondef process(data: Union[str, int]) - None:# This function can handle either a string or an integer         在较新版本的 Python 中您可以使用管道 | 运算符来指示可以是多个选项之一的类型从而替换了对 的需求Union def process(data: str | int) - None:# This function can handle either a string or an integer 6.4 任何         该类用于指示变量可以是任何类型的变量。这相当于根本不提供类型提示。Any from typing import Anydef process(data: Any) - None:# This function can handle data of any type         模块中的这些工具可以帮助您提供详细的类型提示使代码更易于理解和调试。typing         但是请记住Python 的类型提示是可选的不会在运行时强制执行。它们旨在作为开发人员的工具而不是强制类型安全的方法。 七、用户定义的类型         在 Python 中您可以使用类定义自己的类型这是创建自定义类型的基本机制。可以在类型提示中使用这些类就像使用内置类型一样。该模块还提供了用于创建更具体类型的其他工具包括 和 。typingTypeNewType 7.1 使用类定义自己的类型  您可以创建一个类并将其用作类型提示。下面是一个示例 class Student:def __init__(self, name: str, age: int):self.name nameself.age agedef print_student_details(student: Student) - None:print(student.name, student.age)    Student是用户定义的类型它用作函数中的类型提示。print_student_details 7.2 用于类型提示Type 模块中的类可用于指示变量将是一个类而不是类的实例。当函数参数预期为类时例如在工厂函数中通常使用此方法。Typetyping span stylecolor:#3a3631span stylebackground-color:#faf9f7span stylebackground-color:#3a3631span stylecolor:#dad8d6codefrom typing import Typedef create_student(cls: Type[Student], name: str, age: int) - Student:return cls(name, age) /code/span/span/span/span 在此示例中期望一个类或 的子类作为其第一个参数。create_studentStudentStudent 7.3 用于创建不同类型NewType    NewType用于创建不同的类型。当您想要区分两种本来相同的类型时它很有用。         例如假设您正在处理程序中的学生 ID 和课程 ID并且您希望确保不会将它们混淆。两者都表示为整数因此您可以使用创建两种不同的类型NewType from typing import NewTypeStudentID NewType(StudentID, int) CourseID NewType(CourseID, int)def get_student(student_id: StudentID) - None:# Fetch student data...def enroll_in_course(student_id: StudentID, course_id: CourseID) - None:# Enroll the student in the course...         尽管 和 都是整数但它们也被视为不同的类型不能互换使用。但是请记住此检查不是在运行时强制执行的而是在静态类型检查期间使用诸如 .StudentIDCourseIDmypy 八、泛 型         泛型允许您定义适用于不同类型的函数、类或数据结构。模块中的类和函数用于定义泛型类型。例如列表是一种通用数据结构因为它可以包含任何类型的元素。GenericTypeVartyping 8.1 类型变量         TypeVar 用于定义类型变量该变量可以是任何类型具体类型由客户端代码确定。下面是一个示例 from typing import TypeVarT TypeVar(T)def first_element(lst: List[T]) - T:return lst[0]         这里是一个类型变量可以是任何类型。该函数处理任何类型的列表并返回该类型的元素。的具体类型将由传递给函数的列表决定。Tfirst_elementT 8.2 通用 Generic用于定义泛型类。泛型类可以使用多种类型进行初始化这些类型用于类中的类型提示中。 from typing import Generic, TypeVarT TypeVar(T)class Box(Generic[T]):def __init__(self, value: T):self.value valuedef get(self) - T:return self.value这里是一个适用于任何类型的泛型类。创建 的实例时可以指定 的类型该类型将在属性和方法中使用。BoxTBoxTvalueget box1 Box[int](10) box2 Box[str](Hello)    box1是包含整数的 a是包含字符串的 a。Boxbox2Box 九、类型检查pyright         像这样的类型检查器是一种用于在 Python 中强制执行类型提示的工具。在Dagster我们真的很喜欢pyright因为它比其他替代品更快例如。pyrightmypy         Python 本身是一种动态类型语言这意味着类型检查在运行时进行并且不强制执行类型提示规则。如果尝试执行给定数据类型不支持的操作Python 将在运行时引发错误。例如在对象上调用未定义的方法只会在运行时触发错误。         但是在开发大型或复杂系统时强制实施类型一致性有助于及早发现潜在的 bug。 执行静态类型检查这意味着它在实际运行代码之前检查变量、函数参数和返回值的类型。它使用你在代码中提供的类型提示来执行此操作。重要的是要了解它不会执行或运行您的代码;它只是读取和分析它。pyrightpyright 9.1 如何使用类型检查器验证您的类型         要使用 您首先需要安装它pyright pip install pyright         然后要检查 Python 文件请将该文件作为参数运行pyright pyright my_file.py         然后Pyright将分析该文件并报告它发现的任何类型错误。         例如如果您有一个被注释为str接收 a 作为参数的函数并且您传递了一个int ​​​​​​​pyright将捕获此参数。 9.2 静态与动态类型检查         静态类型检查是基于对程序文本源代码的分析来验证程序的类型安全性的过程。静态类型检查在编译时在程序运行之前完成。强制静态类型检查的语言包括C、Java 和 Rust。         另一方面动态类型检查是在运行时验证程序的类型安全性的过程。动态类型检查在程序运行时进行。使用动态类型检查的语言包括 Python、Ruby 和 JavaScript。         在静态类型检查中在程序运行之前检查类型这样可以更轻松地捕获和防止类型错误。这使得程序运行起来更安全因为大多数与类型相关的错误都是在编译时捕获的。但是它也要求程序员显式声明所有变量和函数返回值的类型这可以被视为降低了灵活性。         动态类型检查提供了更大的灵活性因为您不必显式声明每个变量的类型。但是这也意味着在运行时可能发生类型错误这可能会导致程序崩溃。         Python 是一种动态类型语言但它也支持通过 和 类型提示等工具进行可选的静态类型检查。这为Python程序员提供了独特的灵活性允许他们选择何时需要静态类型检查的安全性以及何时喜欢动态类型的灵活性。pyright 十、类型提示和文档字符串         正如我们所讨论的类型提示指示变量、函数参数和返回值的类型。它们可以帮助其他开发人员了解您的函数需要哪些类型的数据以及它将返回什么。         另一方面文档字符串用于提供函数、类或模块的功能描述。文档字符串可以包含对函数用途、参数、返回值以及可能引发的任何异常的描述。         下面是如何同时使用类型提示和文档字符串的示例 def filter_and_sort_products(products: list[dict[str, int]], attribute: str, min_value: int) - list[dict[str, int]]:Filters a list of products by a given attribute and minimum value, and then sorts the filtered products by the attribute.Args:products (list[dict[str, int]]): A list of products represented as dictionaries.attribute (str): The attribute to filter and sort by.min_value (int): The minimum acceptable value of the specified attribute.Returns:list[dict[str, int]]: A list of filtered and sorted products.Raises:KeyError: If the specified attribute is not found in any product.Examples: products [{name: Apple, price: 10}, {name: Banana, price: 5}] filter_and_sort_products(products, price, 6)[{name: Apple, price: 10}]filtered_products [product for product in products if product[attribute] min_value]return sorted(filtered_products, keylambda x: x[attribute])在这里函数签名显示该函数采用表示产品的字典列表、表示属性的字符串和表示最小值的整数。它返回经过筛选和排序的词典的列表。         doc 字符串解释了函数的用途、参数、返回值、可能的异常例如如果给定属性不存在并包括如何调用函数的示例。KeyError         类型提示和文档字符串的这种组合可以大大提高代码的可读性和可维护性。 十一、结论         在 Python 编程最佳实践的基础上我们研究了类型提示如何提高代码的可读性和可维护性。         如果您有任何问题或需要进一步澄清请随时加入 Dagster Slack 并向社区寻求帮助。感谢您的阅读
http://www.w-s-a.com/news/863603/

相关文章:

  • 热搜榜排名前十山东seo多少钱
  • 衡水哪有建网站的吗企业信息系统英文
  • 有模板怎么建站wordpress媒体库图片路径
  • 怎么做网站h汉狮企业网站营销的实现方式
  • 新津县建设局网站怎么做区块链网站
  • 网站设计与制作是什么专业广州优化网站
  • 腾讯有做淘宝客网站吗网站开发包
  • 网站整体营销方案网站建设百度贴吧
  • 宣传式网站养生网站模板
  • 临猗网站建设天津做网站哪家服务好
  • 郑州做网站九零后用织梦建设网站的步骤
  • 莱芜网站优化加徽信xiala5江都网站制作
  • 网站开发工具书焦作网站开发公司电话
  • 石狮网站建设报价百度爱采购怎么优化排名
  • 广州网站开发系统如何建设百度网站
  • 免费建立一个个人网站网站流量图怎么做
  • 微信网站建设公司首选网站后台更新 前台不显示
  • 撰写网站专题活动策划方案未成年做网站
  • 免费在线响应式网站自助建站网页设计与网站建设试卷
  • 四川省肿瘤医院搜索优化整站优化
  • 新钥匙建站深圳创业补贴政策2023
  • 建网站需要准备什么网站三个月没排名
  • 网站运营规划网站推广的手段
  • cvm可以做网站服务器吗网片围栏
  • 培训前端网站开发网站开发 群
  • 成都武侯区网站建设wordpress菜单分类目录
  • 牡丹江市西安区建设局网站给公司做的东西放到自己网站上
  • 做网站的前景如何郑州seo规则
  • 学校户网站建设方案专业设计服务
  • 电子商务网站建设好么有一个网站怎么做cpc