python – 类classname:AND class classname()之间的区别:AND class classname(object):
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 类classname:AND class classname()之间的区别:AND class classname(object):,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1757字,纯文字阅读大概需要3分钟。
内容图文
![python – 类classname:AND class classname()之间的区别:AND class classname(object):](/upload/InfoBanner/zyjiaocheng/818/fc7016cbc29947c8955a4d0a5ed657b0.jpg)
我正在学习python并向OOP介绍自己.但是,我正在努力理解如何最好地构建类,特别是,以下类定义之间的差异以及何时应该使用每个类:
class my_class:
content...
class my_class():
content...
class my_class(object):
content...
我一直在阅读非常有用的python在线帮助,虽然没有找到这个问题的具体答案.所以任何想法或推荐的参考将不胜感激,谢谢.
解决方法:
好吧,我可以立即说第二种方法没有什么特别之处:
class my_class():
content...
在上面的代码中,括号是多余的,根本不影响类定义. @ chepner的评论解释了Python允许你拥有它们的原因.基本上,因为基类列表(放在括号内的代码)可以是任何有效的表达式,所以允许(),因为它在语法上是有效的.
其他两种方法的目的取决于您使用的Python版本.
Python 2.x
以下代码将创建旧式或经典类:
class my_class:
content...
在2.2之前的Python版本中,旧式类是唯一可用的类.根据Python的documentation对它们:
The concept of (old-style) class is unrelated to the concept
of type: ifx
is an instance of an old-style class, thenx.__class__
designates the class ofx
, buttype(x)
is always<type 'instance'>
.
This reflects the fact that all old-style instances, independently of
their class, are implemented with a single built-in type, called
instance.
但是,在Python 2.2或更高版本中,如果从object内置继承,则所有内容都会更改:
class my_class(object):
content...
现在,您将创建一个新样式的类,它具有完全不同的对象模型.与其前身不同,是一种新式的:
…is neither more nor less than a user-defined type. If
x
is an instance
of a new-style class, thentype(x)
is typically the same as
x.__class__
…
如果您想了解更多有关旧式和新式类之间差异的信息,请参阅这个很棒的SO question.
Python 3.x
在Python 3.x中,所有类都隐式地从对象继承,因此是新式类.
这意味着它现在是多余的:
class my_class(object):
content...
因为这样做:
class my_class:
content...
将产生相同的结果.但是,许多程序员仍然明确地从object继承,使他们的类向后兼容旧版本的Python.
内容总结
以上是互联网集市为您收集整理的python – 类classname:AND class classname()之间的区别:AND class classname(object):全部内容,希望文章能够帮你解决python – 类classname:AND class classname()之间的区别:AND class classname(object):所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。