Pzqqt 最近的时间轴更新
Pzqqt

Pzqqt

V2EX 第 346583 号会员,加入于 2018-09-03 06:25:11 +08:00
今日活跃度排名 4105
Pzqqt 最近回复了
以下内容摘自《流畅的 Python 》第 11 章“接口:从协议到抽象基类”的延伸阅读

Python 是弱类型语言吗

由于缺少统一的术语,讨论语言类型方面的话题时有时会让人不明其意。有些人(例如扩展阅读中提到的 Bill Venners 对 Guido 的访谈)说 Python 是弱类型语言,把 Python 与 JavaScript 和 PHP 归为一类。讨论类型时,最好考虑两条不同的坐标线。

强类型和弱类型

如果一门语言很少隐式转换类型,说明它是强类型语言;如果经常这么做,说明它是弱类型语言。Java 、C++ 和 Python 是强类型语言。PHP 、JavaScript 和 Perl 是弱类型语言。

静态类型和动态类型

在编译时检查类型的语言是静态类型语言,在运行时检查类型的语言是动态类型语言。静态类型需要声明类型(有些现代语言使用类型推导避免部分类型声明)。Fortran 和 Lisp 是最早的两门语言,现在仍在使用,它们分别是静态类型语言和动态类型语言。

强类型能及早发现缺陷。

下面几例体现了弱类型的不足:

```javascript
// 这些是 JavaScript 代码(在 Node.js v0.10.33 中做了测试)
'' == '0' // false
0 == '' // true
0 == '0' // true
'' < 0 // false
'' < '0' // true
```

因为 Python 不会自动在字符串和数字之间强制转换,所以在 Python3 中,上述 == 表达式的结果都是 False (保留了 == 的意思),而< 比较会抛出 TypeError 。静态类型使得一些工具(编译器和 IDE )便于分析代码、找出错误和提供其他服务(优化、重构,等等)。动态类型便于代码重用,代码行数更少,而且能让接口自然成为协议而不提早实行。

综上,Python 是动态强类型语言。“PEP 484—TypeHints”( https://www.python.org/dev/peps/pep-0484/)无法改变这一点,但是 API 作者能够添加可选的类型注解,执行某种静态类型检查。
211 天前
回复了 abcfreedom 创建的主题 Android note12turbo 刷哪个系统比较靠谱
@fredweili #43 是的,xiaomi.euMIUI.eu 一样。
213 天前
回复了 abcfreedom 创建的主题 Android note12turbo 刷哪个系统比较靠谱
不介意 MIUI 的话:
- 如果有 Google 服务需求,推荐 MIUI.eu 。优点:基于国内版固件(但标识为国际版),更新及时,品质可靠,口碑也不错,无广告,没有小米应用商店,自带超级壁纸,有轻度的自定义功能(比如:隐藏状态栏图标之类的),绝大多数系统 app 都允许冻结(包括浏览器、系统更新);缺点我暂时没想到,我已经连续用了快半年了。
- 如果非常在意隐私的话,推荐欧版( EEA )。
- 无论如何,不要尝试任何第三方开发者的官改 ROM ,特别是国内开发者的付费官改 ROM (参考几个月前的远程格机事件)。
如果是 AOSP 的话:
- AOSPA 和 SK 的 AOSP 都值得推荐,维护者水平很高,更新也稳定,但要注意 AOSPA 不支持 32 位 app 。
- 不推荐 EvolutionX ,一是这个项目口碑一直不好,二是维护者整活频繁。
- 其他的 AOSP ROM 的话,自己尝试。
https://pzqqt.github.io/
我的 blog 是基于 PureCSS 的示例模板改的,足够简洁。😂
2021-09-28 09:58:02 +08:00
回复了 MiketsuSmasher 创建的主题 Python Python 类方法的装饰器问题
@weyou #6 @MiketsuSmasher 此乃正解,不过把 valid_before_logout 定义在 Account 类里边也是可以的,但不能加 staticmethod 装饰器(此时 valid_before_logout 既不是类方法也不是实例方法,它可以在外部通过类名直接调用,但不与类交互更不与实例交互,相当于类属性)。

这样会带来一个新的问题:如果你要继承 Account 类并重写被 valid_before_logout 装饰过的方法,除非显式调用超类方法或着重新装饰该方法,不然装饰器会失效。举例:

....class B(Account):
........def signout(self):
............self._is_valid = False
....b = B()
....b._is_valid # True
....b.signout()
....b._is_valid # False
....b.signout() # 此时应该触发异常, 但并没有, 因为该方法已经不再被 valid_before_logout 装饰
2021-08-14 09:10:37 +08:00
回复了 Macv1994 创建的主题 Python 关于字典的操作,求一个较好的解决方案
等等,你这是列表啊,那先把 err_data 和 new_data 转为字典吧,`id`做键,`data`做值。
2021-08-14 09:08:01 +08:00
回复了 Macv1994 创建的主题 Python 关于字典的操作,求一个较好的解决方案
python 2 或 python 3.5 以下的版本:
```python
result = dict(ChainMap(err_data, new_data))
```

python 3.5 及以上版本:
```python
result = {**err_data, **new_data}
```

python 3.9 及以上版本:
```python
result = err_data | new_data
```
500G 固态,给 C 盘分了 90G,除必要软件外其他软件都安装在其他分区,因为是电脑预装的原版系统所以也没有做太多的清理,日常剩余 20G 左右。
如果你装了 PC 版微信而且经常使用的话,一定要记得在微信设置中把文件管理目录改到其他分区,因为 PC 版微信会自动保存所有聊天记录中的图片、视频和文件,即使你从来都没有点开看过,而且这个空间占用是没有上限的,使用几个月后空间占用 10 多个 G 再正常不过。
2021-03-15 09:40:10 +08:00
回复了 maloneleo88 创建的主题 Python 有什么手机 APP 可以跑起来 py 文件吗? IOS、Android 都可以。
@maloneleo88 #20 Android 系统自带的文件( com.google.android.documentsui )可以管理 Termux 的 home 目录 ,不过某些国产 Rom 默认会把这个 app 禁用或者阉割了(比如 MIUI ),你需要手动启用它。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4991 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 06:55 · PVG 14:55 · LAX 23:55 · JFK 02:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.