获得徽章 0
self 参数在类的方法中的作用主要有两个方面:

访问实例属性和方法:通过 self 参数,方法可以访问该类的实例对象中的属性和方法。在方法内部,可以使用 self.attribute 来访问实例对象的属性,或者使用 self.method() 来调用实例对象的方法。这样可以在方法中操作和处理实例对象的数据。

区分实例对象和类属性:通过 self 参数,可以区分实例对象的属性和类的属性。当在方法中使用 self.attribute 时,Python 会首先在实例对象中查找该属性,如果找不到,则会继续在类中查找。这样可以确保方法操作的是实例对象自身的属性,而不是类的属性。

举个例子,假设有一个 Person 类,其中定义了一个 greet 方法:

python
Copy code
class Person:
def __init__(self, name):
self.name = name

def greet(self):
print("Hello, my name is", self.name)

# 创建实例对象
person = Person("Alice")

# 调用实例方法
person.greet()
在上面的例子中,greet 方法中的 self.name 是通过 self 参数访问实例对象的 name 属性。这样,在调用 person.greet() 时,方法会打印出该实例对象的名称。

总结起来,self 参数在类的方法中用于访问实例属性和方法,并且区分实例对象的属性和类的属性。它是一种约定俗成的命名习惯,使得代码更具可读性和一致性。
展开
1
动态规划和递归是两种解决问题的方法,它们之间存在密切的关系。

递归是一种通过将问题划分为更小的子问题来解决问题的方法。在递归过程中,问题会被分解为更简单的子问题,并通过递归调用来解决这些子问题。递归可以通过基本情况的定义和递归调用的方式来实现。

动态规划是一种通过将问题分解为重叠子问题,并利用子问题的解来构建问题的解的方法。与递归类似,动态规划也将问题分解为更小的子问题,但不同的是,动态规划使用表格或数组来存储子问题的解,以避免重复计算,并通过填充表格中的值来构建最终的解。

因此,可以说动态规划是一种自底向上的解决问题的方法,而递归通常是自顶向下的方法。动态规划可以通过保存子问题的解来避免重复计算,从而提高效率。在某些情况下,递归可以通过记忆化技术(例如使用缓存或记忆数组)来优化,并具有类似于动态规划的效果。

总而言之,动态规划和递归是相互关联的问题解决方法。动态规划通常基于递归的思想,但使用额外的空间来保存子问题的解,以提高效率并避免重复计算。 #每天一个知识点#
展开
评论
类型注解是 Python 3 中引入的一项功能,它可以提供更好的代码可读性和类型检查。通过类型注解,可以在函数定义中明确指定参数和返回值的类型,使得代码更加清晰,并且可以使用类型检查工具来检测代码中的类型错误。

需要注意的是,类型注解在运行时并不会对参数进行强制类型检查,它主要用于静态类型检查工具和 IDE 的类型推断。在运行时,Python 仍然是一门动态类型语言,允许在不显式指定类型的情况下进行灵活的类型转换。




展开
1
C# 相比于 C++ 具有以下几个主要的优点和好处:

简单易学:C# 的语法相对于 C++ 来说更加简洁和易于学习,它采用了更现代化的编程范式,使得初学者能够更快地上手并开发出高质量的代码。

自动垃圾回收:C# 使用垃圾回收机制(Garbage Collection,GC),它自动管理内存分配和释放,减轻了开发人员的负担,避免了许多与内存管理相关的错误(如内存泄漏和悬空指针)。

强大的类库支持:C# 提供了强大且广泛的类库(如.NET Framework 和 .NET Core),包含了大量的预定义类和功能,开发人员可以直接使用这些类库来完成许多常见的任务,提高了开发效率。

跨平台开发:随着 .NET Core 的推出,C# 现在也可以用于跨平台开发,可以在多个操作系统上运行,包括 Windows、Linux 和 macOS。这为开发人员提供了更大的灵活性和选择。

强大的集成开发环境(IDE):C# 的主要开发工具是 Visual Studio,它是一个功能强大的集成开发环境,提供了丰富的开发工具和调试功能,使得开发人员能够更高效地编写、调试和管理代码。

安全性:C# 强调类型安全性,并提供了诸如空引用检查、数组边界检查等功能,帮助开发人员在编译时捕获潜在的错误,提高了应用程序的稳定性和安全性。

大型社区支持:C# 拥有庞大的开发者社区和活跃的社区支持,可以轻松获取帮助、分享经验和找到各种资源,使得开发过程更加便利和高效。

需要注意的是,C++ 也有其独特的优势,特别是在性能、底层控制和硬件级别编程方面。因此,在选择编程语言时,需要根据具体的需求和项目要求来综合考虑各种因素。




展开
评论
#青训营 x 字节后端训练营# 18
每一个引爆全社会热点的新闻,都具备了某些“扣人心弦”的特质,或许是涉及某些超一线明星的劲爆八卦,或者是谈到了某个令你感到生存焦虑的敏感话题。用一句话来概括,那就是它非常能牵动你的情绪。我们把这句话换一种方式表述来看看,所谓“它能牵动你的情绪”,实际上正是你的情绪容易被它牵动。在这些新闻事件中,我们会兴奋,会愤怒,会焦虑,会沮丧。对于一些热点话题,我们的愤怒是有价值的,它或许能给当局施压而更快找到当事人或者真凶;但大量的热点话题并没有真正的价值。设想在几千年前的一个部落社会里,当酋长召集所有人在村口集会,并且用一些奇怪的符号或者语言煽动时,那时人们的情绪或许与在现代捧着手机、隔着屏幕的你毫无二致。
静下心来思考,在被新闻事件煽动的时候我们究竟做了什么?在网上读到中产阶级焦虑时,我们也随之焦虑,并在某篇新闻下方留言表达自己,但这能带来什么改变吗?
显然不能。只是在那一瞬间,我们的情绪好像不属于自己,我们很容易被读到的文字中所传递出来的强烈情绪所影响,并且接受作者为我们构建起来的“世界”——尽管这个“世界”可能是片面的。
展开
评论
#青训营 x 字节后端训练营# 17

人只不过是一根苇草,是自然界最脆弱的东西;但他是一根能思想的苇草。用不着整个宇宙都拿起武器来才能将其毁灭,一口气、一滴水就足以致他死命了。然而,纵使宇宙毁灭了他,人却仍然要比致他于死命的东西更高贵得多;因为他知道自己要死亡,以及宇宙对他所具有的优势,而宇宙对此却是一无所知。
——帕斯卡尔《沉思录

什么是深度思考呢?用一句话来概括,就是在思考的过程中,不断逼近问题本质。
很多人在思考问题时容易人云亦云,盲从权威。一个不经常进行深度思考的人,当只听某一方的意见时很容易相信它;但如果你是一位深度思考者,则会倾向于去检验这些观点里的假设、知识是否正确,找出信息之间的联系,把这些观点都放到自己已有的思维坐标系中去检验。
展开
评论
#青训营 x 字节后端训练营# 16

产能革命的曙光出现在地平线上。以聊天程序ChatGPT为代表的生成式AI,在近几个月风头无两。
投资银行高盛预测。这项技术的应用将在10年后带动全球经济增幅额外提高7%。比尔·盖茨也表示,每个人都有望得到一位“白领助手”。
但代价是,人类可能会丢掉自己的白领工作。
高盛警告,在新的岗位涌现之前,全球将有3亿人失业。发达国家会受到更大的冲击,欧美国家四分之一的工作岗位可能被AI取代,行政、法律等办公室工作是重灾区。
展开
评论
#青训营 x 字节后端训练营# 15
如果你的时间以天来衡量,那在某个小时你也常常会想不清楚具体应该干吗——因为一天有24个小时,现在少1个小时又算什么呢?
但如果当你的单位时间尺度变到1个小时或者25分钟,你将会很清楚自己要做什么——因为在这个时间区间里,你无法再逃避,你清楚地知道每一分钟的价值,每一分钟对于工作的意义是什么。
展开
评论
#青训营 x 字节后端训练营# 后端14
别刷短视频了。不知道你对短视频有没有一个清楚的认知:它很消磨你的时间,而且让你很快乐。但实际上正是这种被满足在消耗你的精力。熟悉互联网行业都听过“用户即商品“,用户的注意力被卖给广告商,资本负责收钱变现。而你呢,刷半天刷出个啥来了?你要记住,来得太容易的快感反而是摧毁自己的东西。


决定我们自身的不是过去的经历,而是我们赋予经历的意义。心理学家巴甫洛夫也曾提出:心理暗示会影响人的情绪和意志,继而对人的机体产生作用。对于过去,我们无法改变。
但是当下的生活方式我们是可以选择的。如果过去不尽如人意,那现在重新开始也来得及。
展开
评论
后端13 #青训营 x 字节后端训练营#
柳比歇夫他善于捕捉具体的时间。他学会了如何同跳动着的脉搏和正想溜走的“现在”打交道。他不怕屈指可数的、日益减少的余年。他小心翼翼地延长时间,紧紧攥住它,尽量做到不轻易浪费时间,连点滴时间都不放过。他对时间就像对不可或缺的生活口粮那样重视。……原来,人的一生完全不像通常人们所认为的那么短暂。这里问题不在于寿命长短,也不在于工作安排得是否充足。柳比歇夫的经验在于充分使用一天中的每一个小时、一小时中的每一分钟,时时考虑实效。一生的时间是极长的时间,在一生中可以把工作干个够,可以读大量的书,可以学会好几种语言,可以出门旅行,可以饱听音乐,可以教育子女,可以栽培花园,可以培养青年一代……
展开
评论
后端day12
#青训营 x 字节后端训练营#

第一,列出应该做的任务,而不是所有需要做的任务。
一个最典型的误区是,把 To do list 当作自己所有要做事情的“收纳箱”:不管是否紧急,不管是否能在最近完成,不管是否是真的有必要完成的任务,都往这个清单里面放,最终的结果就是清单有太多太多项细分的内容,而自己看到这些任务的时候反而无从下手,甚至在完成某一项任务的时候,又想到还有另外一项待办事项,导致思绪变得杂乱起来。
第二,为任务规划时间,而不是随意地安排。
在安排任务的时候,很多人并不考虑自己的实际情况,而只是将任务简单地罗列出来。这是不好的时间管理习惯,因为每个人有自己智力、体力的峰值。如果你在早上起床的时候记忆力特别好,而在下午往往体力比较充沛,那你就更适合在早上给自己分配需要偏记忆型的工作,而下午去锻炼或者做些体力劳动。如果在你的计划中将这样两项事务颠倒过来,那就浪费了你自己的最佳状态。
第三,制订计划时要面向未来,但最重要的时间是接下来的1小时。
To do list 本质上是面向“未来”的计划表,它不仅仅是针对一天做的规划,也可以是你三天、一周、一个月甚至一年的规划。
时间跨度越长,在规划的时候往往就会面临更多的变动:你可能清楚地知道接下来这一个小时,你会雷打不动地待在办公室写报告,但是对于接下来一周你能完成什么事项,往往就没有那么确定了。
我在规划较长期的任务(例如一个月的任务)时,往往对自己有这样的要求:不要规划得过于复杂,而要集中专注于一件大事。
展开
评论
后端打卡day11 #青训营 x 字节后端训练营#

相信时间所具有的未来价值和形成的滚雪球效应,是认识到时间“魔力”的第一步。这听上去是一个很简单的道理,但真正把它变作信条,却并不是那么容易的事。
我们大部分时间所做的事,都并不能形成未来价值和滚雪球效应——因为我们需要保证基本的睡眠时间,我们需要有正常的社交活动,我们也需要保证生活中基本的快乐感和满足感。
尽管这部分时间难以形成未来价值,但是它们是无法被占用的。例如必须要保证8个小时的睡眠时间的你,如果强行占用睡眠时间去熬夜工作,付出的代价将会是明天更糟糕的工作状态或者以后更糟糕的身体状况,最终得不偿失。
展开
评论
后端打卡day10 #青训营 x 字节后端训练营#
在我看来,他又是一个很矛盾的人,一方面在生活上他很节俭,但另一方面他对于时间却如此“挥霍”。如果告诉他,他每玩一天手机所损失的财富是100元,我想他或许才会感觉自己是多么浪费。或许他还可能认为,就算周末不浪费时间,也不能保证一定能赢得奖学金,所以倒不如干脆躺在寝室里,反而可以节省一小笔开销。
这就像有时候我脑子里冒出的念头:比如想要学习一门课程,但想到还要交报名费,便觉得反正不一定能学会,那还不如省点钱在家里看会儿电视剧;比如你想要去做一个项目,但想到有可能失败,便觉得干脆不做好了。事实上,这样的想法正是导致你没有真正利用好时间的罪魁祸首。
在将时间转化成真实价值的时候往往会面临延时的问题:我们花费了时间,但并没有立刻产生效果。我们没有看到眼前立刻的回报,而那些我们所付出的努力,可能要到很久以后才发挥功用。正是因为我们没有收到即时的反馈,所以才会垂头丧气,认为现在做的努力都没有意义,进而断言这段时间没有什么价值。
展开
评论
后端打卡day9 #青训营 x 字节后端训练营#
你可以将复杂的任务分解为一系列可以在几分钟内完成的 小步骤。然后你可以一次只进行一个步骤,而不是试图一次完成所有 事情。打个比方说,你可以像这样处理学期论文:

第一步,骑自行车去图书馆;

第二步,在电脑上搜索参考书目;

第三步,打印参考书目;

第四步,找到第一本参考书;

第五步,快速浏览参考书;

第六步,在索引卡上写下主要结论的简短摘要。

一旦开始做这件事,你就会有成就感,这将激励你做更多事情。 我发现在几个小时内我就能完成一项任务,即使我只打算做第一步或 第二步。

当你想到你曾经拖延的任务时,你也可能会告诉自己:“我好像 就是没法好好做这件事。”听起来好像有一些看不见的障碍或力量阻 挡着你做这件事。但你真正的意思其实是——“我不想做”。“我不能”和“我不想”完全是两回事。任务拆解法就可以让你清楚地看到 “不想”和“不能”之间的区别。
展开
评论
下一页
个人成就
文章被阅读 1,342
掘力值 76
收藏集
1
关注标签
2
加入于