1. 一切皆对象

1. 一切皆对象

函数, 类 都是对象
特性:

  1. 赋值给一个变量
  2. 可以添加到集合对象中
  3. 可以作为参数传递给函数
  4. 可以当作函数的返回值

代码举例:
函数:

>>> def ask(name='cannon1'):
>>>     print(name)


>>> my_func = ask
>>> my_func('shenjianeng')
shenjianeng

类:

>>> class Person:
>>>     def __init__(self):
>>>         print('cannon2')

>>> my_class = Person
>>> my_class()
cannon2

集合:

>>> obj_list = []
>>> obj_list.append(ask)
>>> obj_list.append(Person)
>>> for item in obj_list:
>>>     print(item())
cannon1
None       # def 没有返回值
cannon2
<__main__.Person object at 0x109cf02e8>    

函数返回函数:

>>> def decorator_func():
>>>     print('dec start')
>>>     return ask


>>> my_ask = decorator_func()
>>> my_ask('my ask')

dec start
my ask

2. type object 和 class之间的关系

type->int->1
type->class->obj

>>> a=1
>>> type(1)
<class 'int'>

>>> type(int)
<class 'type'>
>>> stu=student()
>>> type(stu)
<class '__main__.student'>
>>> type(student)
<class 'type'>

object是最顶层的父类
type也是一个类,同时也是一个对象

>>> Mystudent.__bases__
(<class '__main__.student'>,)
>>> type.__bases__
(<class 'object'>,)
>>> type(object)
<class 'type'>
>>> object.__bases__
()

3. python的内置类型

对象的三个特征:身份, 类型, 值

身份:

id可查看内存地址 即身份

>>> a=1
>>> id(a)
4352361808
类型:
  1. None
    全局只有一个
>>> a=None
>>> b=None
>>> id(a)
4352081784
>>> id(b)
4352081784
  1. 数值
    int float complex(复数) bool

  2. 迭代类型

  3. 序列类型
    list  
    bytes, bytearray, memoryview(二进制序列)
    range
    tuple
    str
    array

  4. 映射(list)

  5. 集合 (set, frozenset)

  6. 上下文管理类型 (with)

  7. 其他
    模块类型 (from import)
    class和实例
    函数类型
    方法类型
    代码类型
    object对象
    type类型
    ellipsis类型(...)
    notimplementd类对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值