Python基础——1、动态语言

一、动态语言

动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的,优点为方便阅读,清晰明了,缺点为不方便调试。

动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。 
例如Python /SQL /JavaScript /PHP 等等。

静态语言,是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C++、Java、Delphi、C#等。

 详细解释可阅读:https://blog.csdn.net/qq_38977097/article/details/80974658

二、 Java语言中关于”一切皆是对象“这句话的理解?

没错,万物皆对象!
这是java语言的一种编程思想,不必纠结万物如何成为对象的,而是你要首先去有这种编程的思维方式。
因为java的基础就是建立在对象之上的,桌子可以被看成一个对象,在代码中叫table,好,你创建了一个类就叫Table,这个Table就是一个对象,代表了桌子这个实际存在的东西。
那么既然万物皆对象,Table这个类也可以再被看成对象,对吧?那么Table类是谁的对象呢?
应该是Class的一个实例对象!
很多东西不是一下能理解的,你只要先记住,编程开发的时候对以对象的角度去看待问题,慢慢会理解的 

三、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')

以上来源:https://www.jianshu.com/p/59e22f76cacb

猜你喜欢

转载自blog.csdn.net/qq_34872215/article/details/87706760
今日推荐