python - 一般语法python问题:从类型语言到非类型语言
问题描述
我是 python 语言的新手。我的问题当然是一个幼稚的问题,并且涉及 python 语法。
我正处于必须从理论走向实践的阶段。
这是我想翻译成python语言的一个类(一个打字稿)。
class Category {
id: number;
type: 'shop'|'blog';
name: string;
slug: string;
path: string;
image: string|null;
items: number;
customFields: CustomFields;
parents?: Category[]|null;
children?: Category[]|null;
}
由于 python 是无类型语言,我对如何翻译有疑问:
- 可选属性:'?'
- 相关类:customFields: CustomFields;
- 关联类的数组(自关联的)并且可以为空:children?: Category[]|null;
直到现在,我一直在使用打字语言,什么都不写会破坏我的习惯。
会是这样吗(它是 django.db 迁移的模型):
>from django.db import models
>>class Category(models.Model):
>>> id = models.AutoField(primary_key=True)
>>> type: 'shop'|'blog'
>>> name = models.CharField(max_length=100)
>>> slug = models.CharField(max_length=100)
>>> path = models.CharField(max_length=250)
进而 ... ?
您能否提供一些教程、文档、示例,让您在实践中学习 Python?感谢大家 !
解决方案
在 Python 中定义函数时,可以强制执行静态类型,但这不是必需的。如果您需要强制执行静态类型,您可以执行类似的操作。
//for functions
def addition(a: int, b: int) -> int:
return a + b
addition(4,10)
//For Variables or attributes
name: str = 'test'
age: int = 10
rating: float = 1.11
is_exist: bool = True
如果您可以参考文档,可以在 python 文档中找到更多与打字相关的内容。
推荐阅读
- vue.js - scrollIntoView() Safari Vue JS 修复
- javascript - 如果字符串不匹配条件,如何从数组中删除元素?
- angular - *ngFor 数组中的空字符串会导致奇怪的放置问题(与数组中的非空字符串相反)
- apache-spark - 从 Spark 写入多个 Kafka 分区
- r - 是否可以使用输入变量选择绘图的位置?
- google-sheets - 谷歌助手输入仅限于从 excel 中选择的下拉选项
- python - 采用可变输入张量列表的自定义 Tensorflow 操作
- selenium - 第二个 Selenium 测试不适用于 Jenkins(click() 问题)
- php - 我应该在 img 标签中写什么,这样才有效
- css - 了解如何使用 bootstrap 4 使 div 居中