python调用的一些杂谈

main函数

python是一门脚本语言,它的命令都是按行解释的。在一般的小程序可能不会用到,类似于其他高级语言的main()函数。但Python中还是有类似于main函数的存在。类似于下面这样的

if __name__ == '__main__':
    ##function

先说一下,main函数的意义。如果是直接运行文件的话,加不加main函数都没什么影响(反正都会按行解释的)。但如果文件作为库被调用时,这种main函数便不会被运行。这是因为,直接运行时name 是等于main的,当被调用时,name
就变成了文件名。
一个最直接的应用是,main函数可以作为调试部分的代码。本人的码量低,还很少用到main函数。

def Hehe(x):
    print(x)
print('ok')
if __name__=="__main__":
    Hehe(2)
    print('hello,world')

一个简单的小例子,当直接运行这个py文件时,所有命令都可以运行。这里写图片描述
但如果是调用的话,main函数就不会被运行

import fensorflow
fensorflow.Hehe(2)

这里写图片描述

fire()

这个函数或者说这个库的作用是自动生成命令行。通过下面的指令进行安装。

pip install fire

关于这个函数有什么意义,现有的资料说的都很空洞,我尽量从实例中让大家感受一下它的用处。

import fire
import datetime

def cal_days(date_str1, date_str2):
    '''计算两个日期之间的天数'''

    date_str1 = str(date_str1)
    date_str2 = str(date_str2)
    d1 = datetime.datetime.strptime(date_str1, '%Y%m%d')
    d2 = datetime.datetime.strptime(date_str2, '%Y%m%d')
    delta = d1 - d2
    return delta.days
if __name__ == '__main__':
    fire.Fire()

这里的fire.Fire()中可以加入函数(或类)的名字,这样在cmd调用的时候就默认调用该函数(类)了。当然,也可以通过fire查看这个文件的结构,比如
这里写图片描述
这里我随便写了一个参数,当然出错。但是你可以在Usage发现你能调用的东西,fire和datatime是我们导入的库,cal_days和daystoday是我们写的函数,都是可以调用的。
正确的写法如下,要加上函数名和正确的参数。

C:\Users\dell.000\Desktop\Script\python>python fensorflow.py days2today 20180727

以及最后
fire 默认使用 - 作为参数分隔符,所以如果你要在命令行传入类似 2017-04-22 的参数时,那么程序接收到的参数就肯定不是 2017-04-22 了,你需要使用 –separator 来改变分隔符。
fire 会自动区分你在命令行传入的参数的类型,例如 20170422 会自动识别成 int,hello 会自动识别成 str,’(1,2)’ 会自动识别成 tuple,’{“name”: “Alan Lee”}’ 会自动识别成 dict。但是你如果想要传入一个字符串类型的 20170422 怎么办?那就需要这样写:‘“20170422”’ 或者 “‘20170422’” 或者 \”20170422\”,总之呢,就是加一个转义,因为命令行默认会吃掉你的引号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值