Python中一切皆为对象

众所周知,面向对象语言的特点即为“万物皆为对象”,其中以Java开发尤为突出。那么在python中,这个 一切 是怎么表现出来的呢?

一切皆为对象(函数和类也是对象)

在Python中,函数和类也是对象。他们体现在以下几个方面

1. 可以赋值给一个变量

# 函数可以被赋值给变量
def hello(name='world'):
    print('hello ' + name)

my_func = hello
my_func('python')
# 类可以被赋值给变量
class Person:
    def __init__(self):
        print('__init__')

my_class = Person
my_class()

通过以上代码可以发现使用新的变量名即可调用函数

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

# 定义集合对象
obj_list = []
# 添加方法与类到几个中
obj_list.append(hello)
obj_list.append(Person)

for item in obj_list:
    print(item())

输出结果:


输出结果.png

注:
以上输出结果中hello world以及init为print函数输出语句。None为函数返回值,无返回值时即为None值

3.可以作为参数传递给函数

# 可以作为参数传递给函数

# 输出类型
def print_type(item):
    print(type(item))

for item in obj_list:
    print_type(item)

输出结果:


输出结果.png

4.可以当做函数返回值

# 可以当做函数返回值
def decorator_func():
    print('调用decorator_func函数')
    return hello

my_func = decorator_func()
my_func('python')
输出结果

注:
此即为Python中装饰器实现原理

All Code

# /bin/python3
# -*- coding:utf-8 -*-
"""
Python中一切皆为对象
"""

# 函数可以被赋值给变量
def hello(name='world'):
    print('hello ' + name)

# my_func = hello
# my_func('python')

# 类可以被赋值给变量
class Person:
    def __init__(self):
        print('__init__')

# my_class = Person
# my_class()

# 可以添加到集合对象中

# 定义集合对象
obj_list = []
# 添加方法与类到几个中
obj_list.append(hello)
obj_list.append(Person)

# for item in obj_list:
#     print(item())

## 可以作为参数传递给函数
def print_type(item):
    print(type(item))

# for item in obj_list:
#     print_type(item)


# 可以当做函数返回值
def decorator_func():
    print('调用decorator_func函数')
    return hello

my_func = decorator_func()
my_func('python')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • python中一切皆为对象 其实面向对象没什么高大上的东西,只不过把我们平时对于事物的描述和动作系统的总结成了一...
    Customer_阅读 4,084评论 0 0
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,235评论 17 410
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 9,667评论 4 16
  • 现在的人呢整天都抱着手机,很少能够安静的看书。读书的好处其实大家都知道,但就是静不下心来。有位叫印南敦史的作家,每...
    喵喵de小来福阅读 1,001评论 0 0
  • 开馆已经八个月了,现在想想,之前在新馆开始时候,都做了哪些储备。 一、绘本专业知识 馆里的1000册绘本(900中...
    louise杨琴阅读 4,306评论 6 0