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 hellomy_func = decorator_func()
my_func('python')
文章图片
输出结果 注:
此即为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 hellomy_func = decorator_func()
my_func('python')
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理