python中type()函数的问题
答案:1 悬赏:50 手机版
解决时间 2021-03-14 15:05
- 提问者网友:你给我的爱
- 2021-03-14 09:45
python中type()函数的问题
最佳答案
- 五星知识达人网友:山君与见山
- 2021-03-14 11:00
在2.6.7下运行上面的代码的显示结果:
Python 2.6.7 (r267:88850, Jul 10 2011, 09:55:27)
[GCC 4.6.1] on linux2
Type "copyright", "credits" or "license()" for more information.
****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************
IDLE 2.6.7 ==== No Subprocess ====
>>> class Foo:pass
>>> foo=Foo()
>>> type(Foo)
>>> type(foo)
>>>
>>> class Bar(object):pass
>>> bar=Bar()
>>> type(Bar)
>>> type(bar)
>>>
在3.2.1下运行上面的代码的显示结果:
Python 3.2.1rc1 (default, May 18 2011, 18:34:29)
[GCC 4.6.1 20110507 (prerelease)] on linux2
Type "copyright", "credits" or "license()" for more information.
==== No Subprocess ====
>>> class Foo:pass
>>> foo=Foo()
>>> type(Foo)
>>> type(foo)
>>>
>>> class Bar(object):pass
>>> bar=Bar()
>>> type(Bar)
>>> type(bar)
>>>
估计,你使用的是Python2.6或2.7的版本。
原因很简单(你要是看过Python3.X的语法规则就会明白了):在2.X系统中,Python的类继承机制在默认与不默认上是不一样。在Python3.X中,所有的类都继承自object类,也就是说,object类在3.X中是所有类的父类;在编写自定义的类时,如果不明写出父类,那么Python3.X就默认为继承自object类。但在2.X中,却是不一样的,如果不明写出父类,它不会默认为object,也就是说你必须要明确告诉Python才行。这也就是为什么在2.X中写不写object的不同。
个人认为:Python2.X中的语法太杂、混乱,有中说不上来的感觉,没有3.X中的规整。3.X中比较清晰、统一。但是就目前在运行效率上,3.X还是比不上2.X,不过社区在将来可能会有所改善。建议直接学习3.X,原因很明显:3.X语法规整、清晰,而且在将来3.X必将会代替2.X;2.6或2.7只不过是个向3.X的过渡版本,原因是有很多程序是2.X下,并且3.X为了避免累赘,没有向下兼容!
Python 2.6.7 (r267:88850, Jul 10 2011, 09:55:27)
[GCC 4.6.1] on linux2
Type "copyright", "credits" or "license()" for more information.
****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************
IDLE 2.6.7 ==== No Subprocess ====
>>> class Foo:pass
>>> foo=Foo()
>>> type(Foo)
>>> type(foo)
>>>
>>> class Bar(object):pass
>>> bar=Bar()
>>> type(Bar)
>>> type(bar)
>>>
在3.2.1下运行上面的代码的显示结果:
Python 3.2.1rc1 (default, May 18 2011, 18:34:29)
[GCC 4.6.1 20110507 (prerelease)] on linux2
Type "copyright", "credits" or "license()" for more information.
==== No Subprocess ====
>>> class Foo:pass
>>> foo=Foo()
>>> type(Foo)
>>> type(foo)
>>>
>>> class Bar(object):pass
>>> bar=Bar()
>>> type(Bar)
>>> type(bar)
>>>
估计,你使用的是Python2.6或2.7的版本。
原因很简单(你要是看过Python3.X的语法规则就会明白了):在2.X系统中,Python的类继承机制在默认与不默认上是不一样。在Python3.X中,所有的类都继承自object类,也就是说,object类在3.X中是所有类的父类;在编写自定义的类时,如果不明写出父类,那么Python3.X就默认为继承自object类。但在2.X中,却是不一样的,如果不明写出父类,它不会默认为object,也就是说你必须要明确告诉Python才行。这也就是为什么在2.X中写不写object的不同。
个人认为:Python2.X中的语法太杂、混乱,有中说不上来的感觉,没有3.X中的规整。3.X中比较清晰、统一。但是就目前在运行效率上,3.X还是比不上2.X,不过社区在将来可能会有所改善。建议直接学习3.X,原因很明显:3.X语法规整、清晰,而且在将来3.X必将会代替2.X;2.6或2.7只不过是个向3.X的过渡版本,原因是有很多程序是2.X下,并且3.X为了避免累赘,没有向下兼容!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯