Python核心基础(一):对象,内置类型

前言:在Python当中,一切皆对象


 1. 在Python当中,一切皆对象。

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

 一等公民具备的特征如下:

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

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

def decorator_func():
    print("dec start")
    return ask

my_ask = decorator_func()
my_ask("tom")

obj_list = []
obj_list.append(ask)
obj_list.append(Person)
for item in obj_list:
    print(item())

my_func = ask
my_func()
my_person = Person
my_person()

输出:

E:\anaconda\python.exe "E:/PyCharm 2017.3.7/workspace/sample/chapter01/all_is_object.py"
dec start
tom
body
None
body1
<__main__.Person object at 0x0000018F5E866780>
body
body1

Process finished with exit code 0

2. type,object和class的关系

  先来看如下关系:

从上图中可以看出:type->int->1; type->class->obj

再来看看object对象:

在类没有继承一个基类的时候,会默认继承object类。object是最顶层基类,所有的类推导到最后都会集成object。

那么问题来了,type也是一个类,同时它也是一个对象,那么type和object是什么关系?

所以,一个很有意思的结论是:object是type的一个实例,而type又是继承自object。

总结如下图:

3. Python当中的内置类型

1. 对象的三个特征:

  1. 身份:对象在内存当中的地址,可以通过id(obj)函数来查看对象的内存地址。
  2. 类型:比如说1是int类型。
  3. 值:a=1 1就是a对象的值。

2. Python当中的内置类型

  • None: 全局里只有一个。a = None   b = None  a==b 值为True
  • 数值:int/float/complex/bool
  • 迭代类型:最著名的就是Python的迭代器了
  • 序列类型:list/(bytes,bytearray,memoryview(二进制序列))/range/tuple/str/array
  • 映射类型:dict
  • 集合:set/frozenset
  • 上下文管理类型:with
  • 其它:模块/class和实例/函数类型/方法类型/代码类型/object对象/type类型/ellipsis类型/notimplemented类对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值