在Clojure中阻止对require的符号调用
这就是我的问题 我在namespace在Clojure中阻止对require的符号调用,clojure,clojurescript,clojure-core.logic,Clojure,Clojurescript,Clojure Core.logic,这就是我的问题 我在namespaceabc.xyz中有一个sample.clj文件,在执行任何CRUD操作之前,我在其中直接调用db init方法 (db/init some config) 当我在测试名称空间cdf.qpr中需要此名称空间abc.xyz作为(:require[abc.xyz:refere:all])时,db已经用some config初始化,但我想用some other config初始化它 如何要求命名空间阻止调用db/init而不更改命名空间abc.xyz中的代码,特别是
abc.xyz
中有一个sample.clj文件,在执行任何CRUD操作之前,我在其中直接调用db init方法
(db/init some config)
当我在测试名称空间cdf.qpr
中需要此名称空间abc.xyz
作为(:require[abc.xyz:refere:all])
时,db已经用some config
初始化,但我想用some other config
初始化它
如何要求命名空间阻止调用
db/init
而不更改命名空间abc.xyz
中的代码,特别是更改行(db/init some config)
,您所要求的是不可能的
一种更有效的方法是询问“如果没有像
(db/init some config)这样的顶级表达式,其他人如何处理这种情况?”
在它们的名称空间中?我怀疑大多数这样的调用并不是作为顶级表达式放在它们的名称空间中,而是放在整个应用程序的某个init函数中。如果不更改名称空间中的代码abc.xyz
,特别是更改行(db/init some config)
,您所要求的是不可能的
一种更有效的方法是询问“其他人如何处理这种情况,而在他们的命名空间中没有像(db/init some config)
这样的顶级表达式?”?我怀疑大多数这样的put调用不是作为顶级表达式出现在名称空间中,而是在整个应用程序的某个init函数中