# -*- coding: utf-8 -*-
# 经典类或者旧试类
class A:
pass
a = A()
# 新式类
class B(object):
pass
b = B()
# python2不支持
# print(A.__class__)
print(a.__class__)
print(type(A))
print(type(a))
# python2
# __main__.A
# <type 'classobj'>
# <type 'instance'>
# python3
# <class 'type'>
# <class '__main__.A'>
# <class 'type'>
# <class '__main__.A'>
print(B.__class__)
print(b.__class__)
print(type(B))
print(type(b))
# python2
# <type 'type'>
# <class '__main__.B'>
# <type 'type'>
# <class '__main__.B'>
# python3
# <class 'type'>
# <class '__main__.B'>
# <class 'type'>
# <class '__main__.B'>
# 旧式类的实现不够好,类是类,实例是实例,类的类型是classobj,实例的类型是instance,两者的联系只在于__class__,
# 这和内置对象是不同的,int对象的类型就是int,同时int()返回的也是int类型的对象,内置对象和自定义对象不同就对代码统一实现带来很大困难。
#
# 新式类
#
# 1. 所有类的类型都是type
# 2. 所有类调用的结果都是构造,返回这个类的实例
# 3. 所有类都是object的子类
# 4. 新式类不仅可以用旧类调用父类的方法,也可以用super方法。
python clas python class object
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
ES6的Object.fromEntries()和Object.hasOwn()
Object.fromEntries()方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。
键值对 Object.hasOwn() Object.fromEntries -
python-class&object
类及对象
python ide 默认值 -
case class、class 、object 、case object
case class、class 、object 、case object
case class、class 、ob -
clas python 调用 python如何调用class
一、模块一个模块就是一个Python文件,后缀名是.py就可以,模块就是Python文件为什么用模块 程序太大,编写维护不方便,需要拆分模块可以增加代码重复利用的机会当做命名空间使用,避免命名冲突如何定义模块 模块就是一个普通文件最好在模块中编写如下内容 函数(单一功能)类(相似功能的组合,或者类似业务模块)测试代码直接导入模块 假如模块名称直接以数字开头(借助im
clas python 调用 python class用法理解 python pth文件是什么 未能加载包studio package 搜索