Python----Python中一切皆对象

简介: Python----Python中一切皆对象

1 python中一切皆对象,类和函数都是“一等公民”,其中一等公民的含义如下:

  • 赋值给一个变量
  • 可以增加到集合对象中
  • 可以作为参数传递给参数
  • 可以作为函数的返回值

2 下面用代码演示在python中类和函数都是一等公民

(1) 类和函数都可以进行赋值


# 定义一个函数
def func(name="default"):
    print(name)

# 函数赋值
my_func=func
my_func("jack")

# 定义一个类
class Person:
    def __init__(self):
        print('person')

# 类进行赋值
MyPerson=Person
p=MyPerson()

执行结果如下:

jack
person

(2)类和函数都可以加到列表中去

# 定义一个函数
def func(name="default"):
    print(name)

# 定义一个类
class Person:
    def __init__(self):
        print('person')

# 定义一个列表
obj_list=[]
# 函数和类可以加到列表中
obj_list.append(func)
obj_list.append(Person)
for item in obj_list:
    item()

运行结果如下:

default
person

(3)类和函数都可以作为参数传入函数

# 定义一个函数
def func(name="default"):
    print(name)

# 定义一个类
class Person:
    def __init__(self):
        print('person')

# 定义一个执行函数,参数为一个函数
def run(func):
    print("begin to run func")
    func()
    print("finish running func...")

run(func)
run(Person)

执行结果如下:

begin to run func
default
finish running func...
begin to run func
person
finish running func...

(4)类和函数都可以作为函数的返回值

# 函数作为函数的返回值
def func_01():
    def func():
        print("jack")
    return func

# 类作为函数的返回值
def func_02():
    class Person():
        def __init__(self):
            print("person")
    return Person

f=func_01()
f()
p=func_02()
p()

执行结果如下:

jack
person

总结:在python中,函数和类都和普通的变量一样,都可以赋值,加到列表中,也可以作为函数的参数传入函数,也可以作为函数的返回值返回

目录
相关文章
|
5月前
|
Python
python对象模型
这篇文章介绍了Python中的对象模型,包括各种内置对象类型如数字、字符串、列表、字典等,以及如何使用`type()`函数来查看变量的数据类型。
|
5月前
|
Python
探索Python中的魔法方法:打造你自己的自定义对象
【8月更文挑战第29天】在Python的世界里,魔法方法如同神秘的咒语,它们赋予了对象超常的能力。本文将带你一探究竟,学习如何通过魔法方法来定制你的对象行为,让你的代码更具魔力。
59 5
|
1月前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
33 2
|
1月前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
56 3
|
3月前
|
存储 缓存 Java
深度解密 Python 虚拟机的执行环境:栈帧对象
深度解密 Python 虚拟机的执行环境:栈帧对象
82 13
|
3月前
|
索引 Python
Python 对象的行为是怎么区分的?
Python 对象的行为是怎么区分的?
37 3
|
3月前
|
存储 缓存 算法
详解 PyTypeObject,Python 类型对象的载体
详解 PyTypeObject,Python 类型对象的载体
63 3
|
3月前
|
Python
深入解析 Python 中的对象创建与初始化:__new__ 与 __init__ 方法
深入解析 Python 中的对象创建与初始化:__new__ 与 __init__ 方法
33 1
|
3月前
|
缓存 Java 程序员
一个 Python 对象会在何时被销毁?
一个 Python 对象会在何时被销毁?
64 2
|
3月前
|
API Python 容器
再探泛型 API,感受 Python 对象的设计哲学
再探泛型 API,感受 Python 对象的设计哲学
29 2