当前位置: 首页 > news >正文

python与java的区别

java老程序员来学习python了,记录一下两种类型语言的区别:

Python与Java变量类型对比

 python里面定义变量不需要指定变量的数据类型,并且是可以修改成其他类型java里面定义变量要指定变量的数据类型,指定以后不可以修改成其他数据类型

类型系统基础

特性PythonJava
类型系统动态类型 (Dynamic Typing)静态类型 (Static Typing)
类型检查时机运行时检查编译时检查
变量重新赋值可赋值为不同类型不可改变变量声明类型

变量声明

Python

# 动态类型
x = 10          # 整数
x = "hello"     # 合法,变为字符串# 类型注解(Python 3.5+)
y: int = 20     # 注解仅为提示,不影响运行

Java

// 静态类型
int x = 10;
x = "hello";    // 编译错误// 泛型
List<String> list = new ArrayList<>();

类型严格性

情景Python行为Java行为
类型不匹配操作抛出TypeError编译错误
数字+字符串5 + “3” → TypeError5 + “3” → “53”(隐式转换)
类型比较“5” == 5 → False“5” == 5 → 编译错误

面向对象差异

多态实现

Python鸭子类型:
class Duck:def quack(self): passclass Person:def quack(self): pass#接受任何有quack()的对象
def make_quack(obj):obj.quack()
Java接口继承:
interface Quackable {void quack();
}class Duck implements Quackable { ... }// 只接受实现Quackable的对象
void makeQuack(Quackable q) {q.quack();
}

容器类型对比

特性PythonJava
列表/数组可混合不同类型必须声明元素类型
泛型运行时类型擦除编译时泛型检查
典型声明lst = [1, “a”]List list = …

总结对比表

对比维度Python特点Java特点
类型确定性运行时确定编译时确定
变量灵活性可随时改变类型类型固定
类型注解可选(3.5+)强制声明
多态方式鸭子类型接口继承
错误发现时机运行时编译时
典型应用场景快速开发/脚本大型企业应用

python中的函数名称也可以当成一个变量

java用久了,很容易写出下面这种代码,在python里面运行就会报错。原来在python里面,这种操作就是将函数调用结果赋值给了函数名本身,导致原始函数被覆盖。

def hello():print("hello!")hello = hello()
hello()

python支持下面这种写法,也就是相当于将函数重命名:

def hello():print("hello!")f = hello
f()

python中函数的形参可以指定默认值,这样在调用函数的时候可以不传这个参数

def sayHello(name="world"):print("hello,", name)sayHello()

python中的函数实参传递支持按参数名称传参

def sayHello(name="world", age=20):print("hello,", name, "age:", age)sayHello(age=18, name="mary")

相关文章:

  • Appium + Ruby 测试全流程
  • Java线程转储:快速定位死锁与阻塞
  • Kubernetes镜像拉取认证指南
  • BeckHoff PLC --> 料筐(KLT Box)自动对中与抓取程序分析
  • 从检索到生成:RAG 如何重构大模型的知识边界?
  • 【无标题】二维势能塌陷的拓扑色动力学:数学物理框架与引力本质探索
  • 通达信腾龙凤舞幅图指标公式
  • 【算法篇】逐步理解动态规划模型7(两个数组dp问题)
  • 高效录屏工具推荐:从系统自带到专业进阶
  • leetcode 2566. 替换一个数字后的最大差值 简单
  • Relook:softmax函数
  • python第52天打卡
  • Anylogic中使用Python执行3(求和)
  • CountDownLatch入门代码解析
  • ELK日志文件分析系统——L(Logstash)
  • Flask 动态模块注册
  • python中的异常处理try-except - else - finally与自定义异常处理
  • 探索数据的力量:Elasticsearch中指定链表字段的统计查询记录
  • 生日悖论理论及在哈希函数碰撞中的应用
  • AndroidMJ-mvp与mvvm
  • 网站26个页面收费/四川餐饮培训学校排名
  • 东圃手机网站建设/百度关键词推广费用
  • 网站建设我们的优势/友链交易交易平台
  • 网站建设工具有哪些/百度网页版入口链接
  • 深圳正规网站建设/广州seo全网营销
  • 企业网站维护合同/制作网页的软件