Python编程:旧式类和新式类的区别

简介: Python编程:旧式类和新式类的区别

先看两段代码

Python 2.7.5

# -*- coding: utf-8 -*-

# 旧式类
class Foo():
    pass


foo = Foo()
print(foo.__class__)
print(type(foo))
# __main__.Foo
# <type 'instance'>
# obj.__class__就表示该类,但type(obj)始终是instance类型


# 新式类
class NewFoo(object):
    pass


new_foo = NewFoo()
print(new_foo.__class__)
print(type(new_foo))
# <class '__main__.NewFoo'>
# <class '__main__.NewFoo'>
# type(obj)则与obj.__class__相同

Python 3.6.5

# -*- coding: utf-8 -*-


class Foo():
pass


foo = Foo()
print(foo.__class__)
print(type(foo))

# <class '__main__.Foo'>
# <class '__main__.Foo'>

class NewFoo(object):
pass


new_foo = NewFoo()
print(new_foo.__class__)
print(type(new_foo))
# <class '__main__.NewFoo'>
# <class '__main__.NewFoo'>

小结

1111.png

新式类: 类(class)和类型(type)相同

旧式类: 类(class)和类型(type)不同


所以,为了兼容py2 和 py3,最好的写法是继承object:

class Foo(object):
pass


参考

Python黑魔法:元类

            </div>
目录
相关文章
|
自然语言处理 监控 数据可视化
海拍客与瓴羊达成合作,通过智能客服系统提升员工内部服务体验
海拍客与瓴羊达成合作,通过智能客服系统提升员工内部服务体验
260 0
|
存储 供应链 前端开发
宜搭平台搭建应用的最佳实践(二)| 学习笔记
快速学习宜搭平台搭建应用的最佳实践。
宜搭平台搭建应用的最佳实践(二)| 学习笔记
阿里云配置dcoker镜像仓库
阿里云配置dcoker镜像仓库
446 0
|
数据中心
交换机的电口和光口到底是个啥东东,做网络的这个常识得懂
在网络通信中,交换机的电口和光口是关键组件。电口使用电信号和RJ45接口,适用于短距离传输,成本低,安装简单;光口使用光信号和光纤线缆,适用于长距离、高速传输,抗干扰能力强,但成本较高。本文详细介绍了电口和光口的工作原理、特点、应用场景及选择方法,帮助读者更好地理解和应用这两种接口。
1759 5
|
JavaScript 小程序 Java
基于微信小程序餐厅点餐系统设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序餐厅点餐系统设计与实现(源码+lw+部署文档+讲解等)
1557 1
|
NoSQL Java Redis
Redis 从入门到精通之Redis数据排序
Redis支持对List、Set和Sorted Set元素进行排序,排序命令是`SORT`。`SORT`命令可以根据指定的排序规则对列表、集合或有序集合的元素进行排序,并返回排序后的元素列表或子集。使用Jedis和RedisTemplate分别实现Redis列表、集合和有序集合排序操作的示例代码
1869 92
|
SQL 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的三重奏
【7月更文挑战第13天】在数字化浪潮中,网络安全和信息安全的重要性日益凸显。本文深入探讨了网络安全中的常见漏洞,如软件缺陷、配置错误等,并分析了这些安全漏洞如何成为攻击者的突破口。文章进一步介绍了加密技术在保护数据隐私和完整性方面的关键作用,包括对称加密、非对称加密以及散列函数的应用。此外,强调了提升个人和企业的安全意识的必要性,通过教育和培训来防范社会工程学攻击,并提出了建立有效安全策略的建议。最后,文章呼吁持续的技术创新和政策制定,以应对不断演变的网络安全威胁,确保信息环境的稳健与安全。
|
Web App开发 iOS开发
怎样给边框添加阴影?CSS3属性box-shadow帮你搞定!
CSS3 给边框添加阴影 -- box-shadow属性
2797 1
怎样给边框添加阴影?CSS3属性box-shadow帮你搞定!
|
索引 Python
列表、元组和字典之间的区别是什么
列表、元组和字典之间的区别是什么
325 0
|
API
ISO 8601表示法的日期时间格式化
ISO 8601表示法的日期时间格式化
708 0