2 python 中一切皆对象

python 中一皆对象

在 python 编程语言中所有的一切都是对象 , python 语言相对于 C++ 或 java 这样的语言 (静态语言), 面向对象这个思想更加的彻底。

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

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

1.赋值给一个变量

    def ask(name="bobby"):
    print(name)

    my_func = ask
    my_func("bobby")
    # 我们可以得到输出结果 bobby

    class Person:
    def __init__(self):
        print("bobby")

    my_cls = Person
    my_cls()
    # 通过这段代码我们依然可以得到输出结果 bobby 
    # 说明了函数和类都是对象,是一等公民

2. 可以添加到集合对象中

    def ask(name = "hello"):
        print(name)

    class Person:
        def __init__(self):
            print("bobby")

    obj_list = []
    obj_list.append(ask)
    obj_list.append(Person)

    for item in obj_list:
        item()

    # 在这段代码中我讲ask 和 Person 加入到了list中随后迭代list中的每一个元素并且调用这个元素,
    # 如此以来得到输出结果 hello bobby
    # 注:函数如果没有返回值 , 那么会默认返回None

2.2 type , object , class 的关系

type 的用法 
1.生成一个类
2.返回一个对象的类型

这里写图片描述

可以发现
1 是一个整型 
int 又是由 type 来生成的

更一般的我们就得到 type -> class -> obj (type 生成 class , class 生成 obj 对象)


object 是最顶层的基类 , 所有的类推导最顶层都继承自 object 类

重点:
    type 是一个类 , 同时 type 也是一个对象 , 

这里写图片描述

2.3 python 中的内置类型

对象的三个特征 : 1.身份(使用id函数) 2. 类型 3.值
None (全局只有一个)
数值 (int , float , complex , bool)
迭代类型(可以用for遍历)
序列类型(可以切片 bytes  bytearray memoryview(二进制序列) , range , tuple , str ,array)
映射(dict)
集合 (set , frozenset)
上下文管理器(with 语句)
其他...(模块,函数等等。。。)

@@

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值