我是靠谱客的博主 俏皮发夹,最近开发中收集的这篇文章主要介绍python基本语法Day122 内存优化3 命令行参数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 引用计数

import sys
import psutil
import os
import gc

print(gc.get_threshold())
def showMemSize(tag):
    pid=os.getpid()
    p=psutil.Process(pid)
    info=p.memory_full_info()
    memory=info.uss/1024/1024
    print('{} memory used:{} MB'.format(tag,memory))
    pass

# 验证循环引用的情况
def func():
    showMemSize('初始化')
    a=[i for i in range(10000000)]
    b=[i for i in range(10000000)]
    a.append(b)
    b.append(a)
    showMemSize('创建列表对象 a b 之后')
    # print(sys.getrefcount(a))
    # print(sys.getrefcount(b))
    # del a
    # del b
    pass

func()
gc.collect() #手动是释放的
showMemSize('完成时候的')
# sys.getrefcount()
# a=[]
# print(sys.getrefcount(a)) #两次
# b=a
# print(sys.getrefcount(a)) #三次
# c=b
# d=b
# e=c
# f=e
# g=d
# print(sys.getrefcount(a)) #八次

2 内存优化

# a=140
# b=140
# print(id(a))
# print(id(a))
# del a
# del b
# c=140
# print(id(c))
# biga=100000
# bigb=100000
# print(id(biga))
# print(id(bigb))
# del biga
# del bigb
# bigc=100000
# print(id(bigc))
# 大整数池和小整数池的区别是:
# 1 从结果来看是一样的
# 2 大整数池是没有提前的创建好对象,是个空池子,需要我们自己去创建
# 创建好之后,会把整数对象保存到池子里面,后面都不需要再创建了 直接拿来使用
# 小整数池是提前将【-5,256】的数据都提前创建好
# 字符串的驻留共享机制intern机制
# sa='ab_c'
# sb='ab_c'
# sc='ab_c'
# sd='ab_c'

sa="a!b"
sb="a!b"
sc="a!b"
sd="a!b"
print(sa is sb)
print(id(sa))
print(id(sb))
print(id(sc))
print(id(sd))

3 命令行参数

import sys
import argparse
# print('参数个数为:', len(sys.argv), '个参数.')
# print('参数列表:', str(sys.argv[1:]))

# 创建一个解析器对象
parse=argparse.ArgumentParser(prog='my - 我自己的程序', usage='%(prog)s [options] usage',
                              description = 'my-编写自定义命令行的文件',epilog = 'my - epilog')

# 添加位置参数【必选参数】
parse.add_argument('name',type=str, help='你自己的名字')
parse.add_argument('age',type=str,help='你的年龄')

# 添加可选参数
parse.add_argument('-s','--sex', action='append',type=str,help='你的性别')
# 限定一个范围
parse.add_argument('-s','--sex',default='男', choices=['男','femal','女','male'],type=str,help='你的性别')
# print(parse.print_help())

result=parse.parse_args() #开始解析参数
print(result)
# print(result.name,result.age,result.sex)

(2)账号登陆

import argparse

# 创建一个解析器对象
parse=argparse.ArgumentParser(prog='系统登录', usage='%(prog)s [options] usage',
                              description='系统自定义命令行的文件',epilog = 'my - epilog')

# 添加位置参数【必选参数】
parse.add_argument('loginType',type=str, help='登录系统类型')
# 添加可选参数
parse.add_argument('-u',dest='user',type=str,help='你的用户名')
parse.add_argument('-p',dest='pwd',type=str,help='你的密码')

result=parse.parse_args() #开始解析参数

if (result.user=='root' and result.pwd=='111111'):
    print('login sucess!')
else:
    print('login fail!')

最后

以上就是俏皮发夹为你收集整理的python基本语法Day122 内存优化3 命令行参数的全部内容,希望文章能够帮你解决python基本语法Day122 内存优化3 命令行参数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部