Python一切皆对象

本文深入探讨Python中的对象概念,从对象、Type、Object和Class的关系讲起,详细解析内置类型的特性,包括None、数值类型、迭代类型、序列类型、映射类型、集合以及上下文管理器,帮助读者全面理解Python的面向对象编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python一切皆对象

1、对象

函数和类也是对象,属于Python的一等公民。

  1. 赋值给一个变量
  2. 可以添加到集合对象中
  3. 可以作为参数传递给函数
  4. 可以当作函数的返回值
def ask(name='hub'):
    print(name)


class Person:
    def __init__(self):
        print('hubo')


"""
作为参数传递
"""


def print_type(item):
    print(type(item))


print_type(Person)

"""
当作函数的返回值
"""


# def decorator_func():
#     print('dec start')
#     return ask
#
#
# my_ask = decorator_func()
# my_ask()

"""
添加到集合对象中
"""

# obj_list = list()
# obj_list.append(ask)
# obj_list.append(Person)
# for item in obj_list:
#     print(item())

'''
可以赋值给一个变量
'''

# my_func = ask  # 将函数对象赋值给变量
# my_func('hubo')
#
# my_class = Person   # 将类对象赋值给变量
# my_class()

2、Type、Object 和 Class的关系

class本身也是一个对象由type生成。
type -> int -> 1type生成classclass生成object

>>> a = 1
>>> type(1)
<class 'int'>
>>> type(int)
<class 'type'>
>>> int.__bases__
(<class 'object'>,)

object是最顶层基类,所有类的最终父类都是object,它的基类是空。

>>> object.__bases__
()

Type:即是类又是对象,继承的类是Object

>>> type.__bases__
(<class 'object'>,)

Object:是Type创建的对象。

>>> type(object)
<class 'type'>
>>> type(type)
<class 'type'>

由图可知道一切皆对象。

**注意:**object是Type的实例,所有的内置类都是由Type创建出来的,Type创建了所有的对象。所以list是一个类,又是Type的对象。

  1. Object:是所有对象的基类,连Type都要继承自它。
  2. Type:创建了所有对象,Type是自身的实例,所以一切都是对象。

3、常见内置类型

3.1、对象的三个特征

  1. 身份:对象在内存中的地址
  2. 类型:实例化对象的类型
  3. 值:
>>> a = 1
>>> id(a)
4410952368
>>> type(a)
<class 'int'>
>>> a
1

3.2、None(全局只有一个)

None类型,Python在解释器启动的时候用None类型生成一个None对象。

3.2、数值

  1. int
  2. float
  3. complex(复数)
  4. bool

3.3、迭代类型

可以用for循环来遍历,实现内置方法。

3.4、序列类型

  1. list
  2. bytes、bytearray、memoryview(二进制序列)
  3. range
  4. tuple
  5. str
  6. array

3.5、映射类型

dict:有key和map

3.6、集合

  1. set:
  2. frozenset:不可以修改的set

set和dict的实现原理相同,效率差不多。

3.7、上下文管理器(with)

实现两个方法:enterexit

3.8、其他类型

  1. 模块类型:form 和 import 也是类型。
  2. class和实例
  3. 函数类型
  4. 方法类型:是class里面定义的函数。
  5. 代码类型:代码会被Python解释器变为对象类型。
  6. object对象
  7. type类型
  8. ellipsis类型:省略号类型
  9. notimplemented类型:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值