Hucci Blog

为什么函数可以直接修改列表,但不能修改字符串。

这次我们来谈谈,为什么函数可以直接修改列表,但不能修改字符串。 比如这段代码,定义了一个字符串和一个列表,然后这里有个函数,会在传入的东西后面加个感叹号。将字符串和列表分别传入函数,然后再打印这两个对象,会发现字符串没有被改变,列表却被改变了。 是不是有点奇怪?如果是因为函数的作用域,而使字符串没有变,那为什么列表变了;如果是因为函数可以改变对象,那为什么字符串没有变。 那么这到底...

EAFP:先斩后奏的设计思路,异常处理的用武之地,pythonic 的编程哲学

今天分享一个 pythonic 的设计思路,缩写是 EAFP,全称是 easier to ask forgiveness than permission,直译过来是「请求原谅比请求许可更容易」。字面上还是挺费解的,我们来直接看例子。 概念说明 我们这里有个字典,包含 name 和 age 两个 key,然后我要写一个函数,用来打印这两个 key,那么这个函数会这样写。 profile ...

【设计模式 in Python】策略模式:不要再用一个类装下所有方法了!

设计模式指的是对于某种问题的解决方案,在我们设计程序时,使用正确的设计模式将极大提高我们的代码效率。 我会在这篇文章中介绍设计模式中的策略模式,它常被用于需要实现不同策略的场景。比如使用不同策略处理文件,使用不同的交通工具导航,使用不同的支付方式进行支付等情况。 我们来看一个具体的例子。 不使用策略模式时 想象我们现在需要写一个处理文件的类,将不同类型的文件处理成统一的格式和类型。需...

【Python】从迭代器到生成器:小内存也能处理大数据

Hey guys,今天我想要分享的主题是,迭代器和生成器。 它们在处理大量数据时非常有用,可以帮助我们节省内存资源。 让我们开始吧。 为什么有的对象可以使用 for 循环迭代,有的不可以? 我们知道,有的对象可以用 for 循环,比如字符串或者列表,有的对象不可以,比如整数。 我在这里定义了字符串,列表和整数,分别对它们使用 for 循环,就可以看到字符串和列表能够正常工作,而整数...