我在Django中编写一个自动菜单模块,它将列出BASE_DIR中包含urls.py文件的所有包.为此,我显然需要访问BASE_DIR,但我无法找到这样做的标准方法.我可以这样做:
from myproject import settings
do_stuff(settings.BASE_DIR)
Run Code Online (Sandbox Code Playgroud)
但我宁愿不把它硬编码到myproject,因为这个菜单模块也可以用于其他应用程序.有更好的解决方案吗?
我有2个数字,x和y,它们是已知的并且完全表示为浮点数.我想知道z = x - y是否总是精确的,或者是否可能发生舍入误差.对于简单的例子,很明显:
x = 0.75 = (1 + 0.5) * 2^-1
y = 0.5 = 1 * 2^-1
z = x - y = 0.25 = 0.5 * 2^-1 = 1 * 2^-2
Run Code Online (Sandbox Code Playgroud)
但是如果我有x和y使得所有有效数字都被使用并且它们具有相同的指数呢?我的直觉告诉我结果应该是准确的,但我希望看到某种证据.如果结果是否定的,它会有所不同吗?
我已经制作了一个CL程序来简化更改所有者,USRPRF和对象的权限.它利用GRTOBJAUT等进行更改.这是参数定义:
pgm parm(&libobj &type &owner &usrprfown &user1 &auth1 +
&user2 &auth2 &user3 &auth3)
...
dcl var(&libobj) type(*char) len(21)
dcl var(&type) type(*char) len(10)
dcl var(&user1) type(*char) len(10)
dcl var(&auth1) type(*char) len(10)
...
Run Code Online (Sandbox Code Playgroud)
这就是我称之为GRTOBJAUT的方式:
grtobjaut obj(&libobj) objtype(*all) user(&user1) +
aut(&auth1)
Run Code Online (Sandbox Code Playgroud)
但是,只有前10个字符&libobj
实际传递给GRTOBJAUT.我已经在调试器中验证了grtobjaut obj('MYLIB/TEST')
尽管&libobj
包含完整的字符串,但传递MYLIB/TEST1234的结果仍然存在.根据文档,这应该是GRTOBJAUT命令的正确语法,因此允许超过10个字符的长路径.实际情况并非如此吗?交互式GRTOBJAUT和CL GRTOBJAUT之间有区别吗?我该如何工作?
该程序是为v6.1编译的,并在支持v7.1的环境中运行.
编辑:同样的问题适用于CHGOBJOWN.