小编use*_*261的帖子

从外部调用时无法找到模块

我有一个多子模块python项目,例如"myproject",下面有两个子模块"submodule1"和"submodule2".

项目结构

Example1/
|-- submodule1/
|   |-- __init__.py
|   |-- hello.py
...
|-- submodule2/
|   |-- __init__.py
...
Run Code Online (Sandbox Code Playgroud)

我有一个hello.pysubmodule1其中有内容:

import datetime

def greeting():
    print("hello world! - " + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
Run Code Online (Sandbox Code Playgroud)

submodule1's 的内容__init__.py是:

def main():
    import hello
    hello.greeting()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

我可以在这里成功导入hello.py和调用greeting()函数.

现在,我安装了submodule1一个包蟒蛇,然后创建submodule2,并试图调用submodule1submodule2通过把下面的代码__init__.pysubmodule2:

import submodule1

def main():
    submodule1.main()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

消息失败了:

....in main …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

6
推荐指数
1
解决办法
599
查看次数

有没有办法在不运行的情况下将内容从 IO 提升到其他容器?

根据cats官方文档:https : //typelevel.org/cats-effect/typeclasses/liftio.html ,如果我们想把东西从IO提升到其他容器,你应该实现LiftIO trait,但示例明确运行unsafeRunXXX方法来获取出了效果,我想知道这是转型的唯一途径吗?

scala monad-transformers io-monad scala-cats cats-effect

6
推荐指数
1
解决办法
404
查看次数

如何连接两个Scala期货

我有两个Future函数:

def parseIntFuture(str: String) = Future{scala.util.Try(str.toInt).toOption}
def divideFuture(a: Int, b: Int) = Future{ if (b == 0) None else Some(a / b)}
Run Code Online (Sandbox Code Playgroud)

现在我想连接它们并最终得到一个Future[Option[Int]]类型结果,这是第二个返回值,但如果我喜欢这样:

def stringDivideBy(aStr: String, bStr: String) = {
    val x = for {
        aNum <- parseIntFuture(aStr)
        bNum <- parseIntFuture(bStr)
    } yield (aNum, bNum)

    x.map(n => {
        for{
            a <- n._1
            b <- n._2
        } yield divideFuture(a, b)
    })
}
Run Code Online (Sandbox Code Playgroud)

实际上我会得到Future[Option[Future[Option[Int]]]]Future[Option[Int]]不仅仅是.我知道这是因为我将一个Future传递给另一个,但我不知道连接这两个Futures的正确方法是逐一避免使用Await.我停止明确使用Await,那么解决方案是什么?

scala future

4
推荐指数
2
解决办法
73
查看次数

替换文本中的段落

如何使用 shell 命令(sed 或 awk)来替换文件中的段落,如下所示:

bala bala ba1
balabala.
leave me here.

this paragraph
yes, I'm going
to be replaced

The rest contains
should not be replaced.
Run Code Online (Sandbox Code Playgroud)

更换后:

bala bala ba1
balaba.
leave me here.

New contains,
I'm replacement!

The rest contains
should not be replaced.
Run Code Online (Sandbox Code Playgroud)

我声明original包含在一个变量中$OLD,而new包含在另一个变量中$NEW

bash awk sed

1
推荐指数
1
解决办法
2500
查看次数

具有通用返回类型的零方法

我有以下代码应该是工厂类。它的apply方法具有用于返回类型限制的通用参数:

sealed trait Account
final case class CheckingAccount() extends Account
final case class SavingsAccount() extends Account

object Account {
    def apply[T <: Account]:T = {
        CheckingAccount()   // CheckingAccount().asInstanceOf[T]
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果未显式进行类型转换,则编译器会报告“ Banking.CheckingAccount类型的表达式不符合预期的类型T”。有人知道为什么吗?

generics types casting scala

1
推荐指数
1
解决办法
39
查看次数