Python中的作用域知识和常用标准库(已经内置的)

Python007: Python中的作用域知识和常用标准库(已经内置的)

1. 作用域

  • global(全局)
# 在所有函数的最外边,如当前模块的全局变量
# 示例

a = 5
print("全局a的地址:%d" % id(a))


def myfun():
    global a  # 声明一下此时的a为全局的a
    b = a + 1  # 如果不声明,那么a是局部的,且会报错:"local variable 'a' referenced before assignment"
    print("myfun中第1个a的地址:%d" % id(a))
    a = a + 10
    # 这两个a都是全局的,但是由于python中赋值的机制是,重新创建一个数据然后给他贴标签"a",所以地址不同,另外会回收原始值
    print("myfun中第2个a的地址:%d" % id(a))
    print("myfun中第2个a = %d" % a)
    return b


print("b = %d" % myfun())
print(a, id(a))  # 打印的是全局a
#=========================================================================
# 输出如下:
全局a的地址:140703990784544
myfun中第1个a的地址:140703990784544
myfun中第2个a的地址:140703990784864
myfun中第2个a = 15
b = 6
15 140703990784864
  • local(局部)
在某个函数或者类内部定义的变量
  • Enclosing(主要是非局部也非全局的变量)
# 如下的o_count变量
g_count = 0  # 全局
def outer():
    o_count = 1  # 一个函数外,另一个函数中
    def inner():
        i_count = 2  # 局部
# 再比如:
a = 5   # a是全局的
def myfun():
    global a
    b = a + 5 # b是nolocal

    def fun():
        c = b + 6	# c是local
        return c

    return fun()


print(a)
print(myfun())
# 输出结果:
5
16
  • Built-in(关键字和内建的变量)
# 在python3 输入下类命令可查询内建变量
import builtins
dir(builtins)

2. 常用的标准库

import os		# 操作系统相关的函数接口
import shutil	# 文件和目录管理
import sys
import math		# 数学模块(对C标准库的封装)
import random	# 生成随机数相关的库
from datetime import date	# 日期和时间
# 今天 
today = datetime.date.today()
# 昨天 
yesterday = today - datetime.timedelta(days=1)
# 上个月 
last_month = today.month - 1 if today.month - 1 else 12
# 当前时间戳 
time_stamp = time.time()
# 时间戳转datetime 
datetime.datetime.fromtimestamp(time_stamp)
# datetime转时间戳 
int(time.mktime(today.timetuple()))
# datetime转字符串 
today_str = today.strftime("%Y-%m-%d")
# 字符串转datetime 
today = datetime.datetime.strptime(today_str, "%Y-%m-%d")
# 补时差 
today + datetime.timedelta(hours=8)

参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖啡与乌龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值