首页 >

java和python的区别在哪里? |扫雷游戏框架python

python的unicode编码,python 表格库,python做网站比php好,小白python自学基础,python二叉树前几层,80070570 python,python 编程类型,杂志订阅Python,Python初始tabs,python 过滤 空格,扫雷游戏框架pythonjava和python的区别在哪里? |扫雷游戏框架python

1.py是1991年问世,java是1995年问世;

2.helloworld代码区别:

java:

publicclassHello

{

publicstaticvoidmain(String[]args)

{

System.out.println(“HelloWorld!”);

}

}

py:

print(“HelloWorld!”)

3.打开文件代码:

py:

f=open(“c:\\tmp\\Hello.java”,”r”)

print(f.read())

f.close()

java有IO模块设计,可是人们不太常用;

4.函数缺省值:

py:

classEmployee():

def__init__(self,name,gender=”male”,maritalStatus=”single”):

self.name=name

self.gender=gender

self.maritalStatus=maritalStatus

self和java里的this差不多,而self必须作为参数,py代码缩进用的空格,容易出错;

5.变量类型:

py:是动态语言,变量类型统一用var表示

var=3

var=”helloworld”

java:是静态语言,变量类型有区别;

6.实现DuckTyping代码:

py:

classDuck:

defhelp(self):

print(“Quaaaaaack!”)

classPerson:

defhelp(self):

print(“helpme!”)

defin_the_forest(x):

x.help()

in_the_forest(Duck())

in_the_forest(Person())

优点:这个Duck和Person并没有实现共同的接口或者继承相同的类,但是照样可以作为参数传递给in_the_forest函数,这个特性写起代码来非常爽快。

缺点:1)写起来很爽,读起来就不爽了,别人看到了in_the_forest这个函数,他知道参数x的类型是什么吗?是Person?是Bird?还是别的类?

2)如果重构一下Person函数的help方法,比如改成sos(self),py的IDE能安全地重构吗?恐怕是不容易吧?假设人肉重构改错了,py也只能在运行时发现错误了!

java:

由于自己是静态类型,变量类型在编译期就能确定,IDE那强大的智能感知功能,自动安全重构的功能一直是引以为傲的卖点。

7.AOP:是对现有代码做增强,动态的添加一些安全、日志、事物等‘切面’功能。

java:

java类一旦被装载就无法修改,那是怎么实现动态添加的呢?

答:大家可以在运行时生成新的类啊,让新生成的类继承老的类,或者和老的类实现同样的接口,比如ASM这样的工具,可以操作字节码去创建新的类,织入那些‘切面’代码,这种工作如此精巧,让人叹为观止。

py:

大家是动态语言,可以在运行时对一个类进行增强:添加方法,替换方法,根本不用操作那么Low的字节码,偶给你举个简单的例子:

classOrder:

defsave(self):

print(“saveorder”)

#把老的方法引用保存起来

old_save=Order.save

#定义一个新方法,该新方法调用老方法

#并在方法前后加上了日志

defsave_with_logging(self):

print(“loggingstart”)

old_save(self)

print(“loggingend”)

#把新方法赋值给Order类的save方法

Order.save=save_with_logging

#测试

t=Order()

t.save()

输出:

loggingstart

saveorder

loggingend

Python想实现AOP,还可以使用装饰器,Metaclass等很多方式,总得来说py的函数就是一个对象;

————————————————

版权声明:本文为CSDN博主「mhyunyun」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/a214704/java/article/details/81275952


java和python的区别在哪里? |扫雷游戏框架python
  • 大数据时代,企业该如何做好个人信息合规建设? - 网络|
  • 大数据时代,企业该如何做好个人信息合规建设? - 网络| | 大数据时代,企业该如何做好个人信息合规建设? - 网络| ...

    java和python的区别在哪里? |扫雷游戏框架python
  • 苹果账号在AppStore可以找回以前下载的东西吗,该怎么做? - 网络|
  • 苹果账号在AppStore可以找回以前下载的东西吗,该怎么做? - 网络| | 苹果账号在AppStore可以找回以前下载的东西吗,该怎么做? - 网络| ...

    java和python的区别在哪里? |扫雷游戏框架python
  • 大数据会给现代农业带来哪些改变呢? - 网络|
  • 大数据会给现代农业带来哪些改变呢? - 网络| | 大数据会给现代农业带来哪些改变呢? - 网络| ...