有兩個包我想用:CorpusLoaders.jl和WordNet.jl兩個模塊,這兩個出口同名
- CorpusLoaders.SemCor出口
sensekey(::SenseTaggedWord)
- 共發現出口
sensekey(::DB, ::Synset, ::Lemma)
我想同時使用sensekey
方法。
如
的項目的一些混合列表:mixedlist::Vector{Union{Tuple{SenseTaggedWord},Tuple{DB, Synset,Lemma}}
。即,列表中的項目是SenseTaggedWord
的1元組和DB
,Synset
和Lemma
的3元組的混合。
for item in mixedlist
println(sensekey(item...)
end
應該工作。 這個例子有點兒滑稽,因爲我爲什麼要像這樣混合它們。 但是,希望它可以解釋一般情況下的問題。
試圖using CorpusLoaders.SemCor, WordNet
帶來兩個結果WARNING: both WordNet and Semcor export "sensekey"; uses of it in module Main must be qualified.
手動導入兩種:import CorpusLoaders.SemCor.sensekey; import WordNet.sensekey
結果WARNING: ignoring conflicting import of Semcor.sensekey into Main
可以做些什麼?我希望他們兩個,而且他們並沒有真正的衝突,由於多派遣。
鑑於CorpusLoaders.jl是一個包,我寫我確實有一些更多的選擇,因爲我可以讓我的CorpusLoaders.jl取決於WordNet.jl。 如果我不是那麼做,我可以在CorpusLoaders.jl
import WordNet
function WordNet.sensekey(s::SenseTaggedWord)...
說這將讓他們都工作。 但這意味着需要WordNet作爲CorpusLoaders的依賴。
我想知道如何解決包裝的消費者的問題 - 而不是包裝的創造者。
不管怎樣,離開它,我的答案主要是關於用戶案例。希望有相同問題的人需要比馮洋的答案更詳細一點(或*很多*:p)的細節,那麼下面就會碰到我的問題:D我只是想將我的意見轉換成將他們從這裏刪除的答案,heheh。我會刪除上面的評論洪流:p 感謝您花時間編輯/澄清! –