享受Python和PHP动态类型检查语言的快感

前言

写这文章的时候特地查了资料,以确保我没有说错关于Python和PHP的类型机制。
所以这里放一张图,关于强弱类型与动态/静态类型检查的区分

从分类上看,PHP属于弱类型语言,而Python属于强类型语言,为什么可以把这两个语言放在一起呢,因为都是动态类型检查的,也就是定义变量时不用指定类型,解释器会根据赋值进行推断变量的数据类型。并且,最近在做Web和微信开发,同时在使用PHP和Python。

圈粉点

  • 模块/库丰富,这个很好体现,在做Http请求这块,处理Json数据太方便了,构造Json结构字典/数组也超级方便(不仅是因为类型定义完全省略)
  • 部署简单!跨平台成本真的低,本地(Windows系统)写完代码,测试通过,扔到服务器(Debian)上直接就可以运行(当然服务器上已经安装了Python环境),不用编译这点也很方便

黑点

  • PHP变量最难受的就是哪个$符号,真的好别扭,感觉PHP写久了,键盘上的4键都坏了。
  • Python最难受的是缩进,用IDE时,偶尔自动格式化代码会把某一块的缩进搞错了,代码多的时候,出了问题都很难找到,(不过Python一般很少一个模块内代码很多的,嘿嘿)
  • PHP的设计怪怪的,我喜欢C#和Python这类按模块分类的设计,而不是PHP这样大部分功能都做成内置函数
    比如PHP的Json解码是这样的:
$str = "Json代码"
$result = json_decode($str, true)

而Python是这样的:

import json
str = "Json代码"
result = json.loads(str)

两个代码展示的功能都是获取Json结构对应的数组,虽然PHP不用引入任何包/模块,但是就感觉很乱,我还是喜欢Python这样逻辑清晰的语言。

  • 还有一个,PHP的类属性怎么用,好像没有读取器和存储器,查了一下解决方案,都挺麻烦的。像C#/Java这种就很方便,Python也有set/get的实现,操作也不复杂。例子:
from decimal import Decimal

class Fees(object):
    def __init__(self):
        """Constructor"""
        self._fee = None

    @property
    def fee(self):
        """
        The fee property - the getter
        """
        return self._fee

    @fee.setter
    def fee(self, value):
        """
        The setter of the fee property
        """
        if isinstance(value, str):
            self._fee = Decimal(value)
        elif isinstance(value, Decimal):
            self._fee = value

if __name__ == "__main__":
    f = Fees()

使用:

>>> f.fee
Decimal('1')
>>> f.fee = "2"
>>> f.get_fee()
Decimal('2')

这就相当的方便和舒服了。

由于时间关系,暂时写这些,后续我会在这篇文章中继续补充。


我的微信公众号:DealiAxy

作者:DealiAxy

出处:https://www.cnblogs.com/deali/p/7820282.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

微信公众号:「程序设计实验室」
新版StarBlog已经上线,地址:http://blog.deali.cn

posted @   程序设计实验室  阅读(482)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 上周热点回顾(2.17-2.23)
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示