各位大佬好,
首先感谢各位大佬能够点开这个弱鸡问题,因为确实挺基础的,让您能花时间看我问什么问题,极有可能会浪费掉您部分宝贵的时间,故而首先致敬🫡
自己一直在断断续续地自学 Python ,主要是跟着经典入门书籍《 Python 编程:从入门到实践(第 2 版)》在学习。在此之前毫无 coding 的任何基础,加之年纪又上来了,进度奇慢无比,对很多基础的东西理解起来似乎并不容易。目前学到第 19 章,在跟着书籍敲代码的过程中,对_
和.
的使用区别愈发显得迷惑。
比如下面这段示例代码中,同样是获取topic_id
,但是为啥new_entry
中是使用的topic_id=topic_id
,但是在edit_entry
中就变成了topic_id=topic.id
?
这个问题网上搜了一圈,没有找到答案,实在是抱歉,要请各位大佬指点迷津!感谢!
def new_entry(request, topic_id):
"""add new post in topic"""
topic = Topic.objects.get(id=topic_id)
if request.method != 'POST':
# data not submitted: create new entry form
form = EntryForm()
else:
# POST submitted data: process the data
form = EntryForm(data=request.POST)
if form.is_valid():
new_entry = form.save(commit=False)
new_entry.topic = topic
new_entry.save()
return redirect('learning_logs:topic', topic_id=topic_id)
context = {'topic': topic, 'form': form}
return render(request, 'learning_logs/new_entry.html', context)
def edit_entry(request, entry_id):
"""edit current entry"""
entry = Entry.objects.get(id=entry_id)
topic = entry.topic
if request.method != 'POST':
# first time: use the as-is item to fill form
form = EntryForm(instance=entry)
else:
# POST submitted data: process the data
form = EntryForm(instance=entry, data=request.POST)
if form.is_valid():
form.save()
return redirect('learning_logs:topic', topic_id=topic.id)
context = {'entry': entry, 'topic': topic, 'form': form}
return render(request, 'learning_logs/edit_entry.html', context)
1
westoy 2023-06-18 21:25:06 +08:00 1
|
2
kaiveyoung 2023-06-18 21:28:22 +08:00 via Android 3
@westoy 这是没看基础语法
|
3
miyuki 2023-06-18 21:30:41 +08:00
topic_id 是函数传进来的参数名
|
4
pi0piK 2023-06-18 21:32:21 +08:00
说实话这个问题,我当年学 python 的时候也有过……原因是面编程入门是学校的 C ,接触 python 的时候没弄明白 "." 的意义,这个问题知道我后来学 Java 才彻底解决😂
|
5
nikenidage1 2023-06-18 21:35:52 +08:00
所以说 python 并不适合当第一门语言 ┑( ̄Д  ̄)┍
|
8
z4oSkDNGGC2svsix 2023-06-18 22:07:40 +08:00
初学者往往忽略了一些最基础的概念, 标识符, 运算符,
|
9
huangzhiyia 2023-06-18 22:11:35 +08:00 via Android
这个跟年龄没关系叭,之前教过 24 岁的妹子 Python 整得我心态都奔溃了。 就是没计算机基础,学得挺慢的🥲🥲
|
10
kokutou 2023-06-18 22:13:51 +08:00
要不...先学下 java 吧...
|
11
kokutou 2023-06-18 22:14:33 +08:00
不会没搞个 pycharm 这种 ide 吧...不会在记事本手写吧...
|
12
winterbells 2023-06-18 22:29:02 +08:00 via Android
第一次看 jni 也是一样的疑惑,想了很久 -> 是什么玩意儿…
|
13
horizon 2023-06-18 22:43:31 +08:00
要么,先学下 js ?
|
16
oppurst OP @x02 感觉确实是基础部分翻得太快了,原本想着快速跟着教材敲一遍,先找找手感,现在发现基础部分确实不能草率。感谢各位大佬指教!谢谢!
|
17
oppurst OP @horizon 可惜时间精力有限,主要目标是想深入一下深度学习和人工智能相关的技术,所以还是先学会 Python 吧。感谢大佬的建议!
|
18
ecloud 2023-06-18 23:09:42 +08:00
|
19
NotFoundEgg 2023-06-18 23:30:31 +08:00
topic_id=topic_id 和 topic_id=topic.id ,等号左侧的是标注出等号右侧的参数赋值给哪个形参( python 函数在调用时,参数顺序是可以乱序的);其中_可以当作普通的字母看待,没有特殊含义;而.代表从对象取值(类似 js )
|
20
westoy 2023-06-18 23:46:11 +08:00
@oppurst
我说的直, 你别见怪 如果你学 python 是为了搞 ai , 那可以放弃了 学玩手术刀, 玩得再好, 也不是学会给人动手术的路子啊, 你得去先去学人体结构、病理, 上手解剖, 在这个过程中顺便把手术刀玩遛..... 我们这些会 python 的, 大部分对于 ai 来说也是门外汉, 和你不会 python 的没什么区别的..... |
21
zrc199021 2023-06-18 23:46:50 +08:00
@winterbells 第一次学 scala ,也是同样的疑惑:-> 到底是啥意思啊,随便一个箭头就是语法?怎么有这么敷衍的语言呢…
|
23
oppurst OP @NotFoundEgg 感谢大佬!逐渐开始明白了,我再回顾梳理一遍几个类和函数之间的逻辑,加深一下理解。
|
24
oppurst OP @westoy 不会不会,大佬言重了。虚心向各位大佬求教,任何分享对我来说都是有价值的参考。
说来凑巧,您举的例子恰好是我之前的一部分职业路径,不过已经跨行很久了。之所以想要研究 AI ,是感觉目前 AI 在医疗领域的应用,还相对缺乏想象力。当然,常规的像是影像诊断、药物早期开发等方面的应用已经相对比较成熟,但是未来的应用场景和技术革新,在潜力上应该还比较巨大,是个不错的发展方向。 当然,医疗领域纯 AI 应用场景应该不容易带来巨大的增量市场,更多的会是融合性的场景,比如 AI+IoT ,或者配合脑机接口等等。 |
25
huoshen 2023-06-19 00:50:02 +08:00 via iPhone
其实建议基础语法看看菜鸟教程之类的,如果你有学习别的语言的经验,大部分情况下语法会了已经会了一大半了,然后再搞应用。
|
26
oppurst OP 问了 ChatGPT ,居然识别出来了,太牛了:
在这段代码中,topic_id 是作为参数传递给函数 new_entry 和 edit_entry 的值。它表示一个主题的唯一标识符。 在 new_entry 函数中,topic_id 是直接使用的,因为它代表传递给函数的参数值。 在 edit_entry 函数中,entry_id 表示要编辑的条目的唯一标识符。首先,通过使用 entry_id 从数据库中获取相应的 entry 对象。然后,从 entry 对象中获取其所属的 topic 对象,将其赋值给 topic 变量。这里使用 topic.id 是为了获取 topic 对象的唯一标识符,以便在重定向时将其作为参数传递给 learning_logs:topic 视图。 总结起来: topic_id 表示主题的唯一标识符,直接使用其值。 topic.id 表示主题对象的唯一标识符,用于重定向时传递给视图。 |