js和python区别大不大_关于JS与Python之间的区别二三事

2ff34e647e2e3cdfd8dca593e17d9b0a.png

好久没更新博客,而且最近一直都有其他的事情在忙,今天闲下来更新一篇,说说我在开发中遇到的那二三事。

Python中若要动态加载某目录下的子模块。。一直都没找到什么好的解决方法,一开始自己写的代码是这样的:

main.pymod_list = {}

for filename in os.listdir('mod'):

if filename.endswith('py'):

for line in open(os.path.join('mod',filename)):

eval(line)

# do something behind

mod/md.pymarkdown_template = '"# %(title)s

Author: %(author)s

Create Date: %(created_time)s

Last Update: %(updated_time)s

%(content)s

"'

def markdown(self):

return markdown_template % self

mod_list ['md'] = markdown

期望是能够在mian中do something 之后能够在class内通过mod_list.get('md')()来运行markdown函数,然而,运行失败。。

于是我到处找其他解决方法,除了静态和硬替换以及加入注册函数之外没能找到更好方法,因此在回过头来思考为什么出错。

通过日志能够发现在eval读取到的mod文件的第一行就出错了,再一查eval只能执行一行表达式,于是将main.py中的eval换成能执行多行的exec,成功运行。

错就错在方法和经验式上了,js的eval是js的,不是python的,python的exec才等于js的eval。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值