typescript - 一般语法 Python 问题:从强类型语言到弱类型语言
我刚接触 Python 语言。我的问题当然很天真,并且涉及 Python 语法。
我正处于必须从理论走向实践的阶段。
这里有一个类(一个 TypeScript 类),我想把它翻译成 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?谢谢你们所有人!
答案#1
当你在 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 文档中可以找到更多与类型相关的内容,以防你可以参考文档。
答案#2
最好通过阅读它的文档来学习这门语言,文档中有足够的示例。https://docs.python.org/3/
如果你想学习 Django,有相当多的教程。但首先,请看这里。https://docs.djangoproject.com/en/3.2/
至于您给出的 Category 类的例子,ID 是自动确定的,在模型中不需要显式指定,更多信息请参见 https://docs.djangoproject.com/en/3.2/topics/db/models/
