相关疑难解决方法(0)

Python中的EAFP原理是什么?

Python中"使用EAFP原理"是什么意思?你能提供任何例子吗?

python principles

123
推荐指数
3
解决办法
3万
查看次数

Python,以正确的方式进行条件导入

现在我有一个叫A的班级.

我有一些像这样的代码..

from my.package.location.A import A

...


foo = A.doSomething(bar)
Run Code Online (Sandbox Code Playgroud)

这很棒.

但是现在我有一个名为A的新版A,但是在另一个包中,但我只想在某个场景中使用其他A. 所以我可以这样做:

if(OldVersion):
    from my.package.location.A import A
else:
    from new.package.location.A import A

...

foo = A.doSomething(bar)
Run Code Online (Sandbox Code Playgroud)

这很好用.但它很难看.我怎么能做得更好?我真的想做这样的事情

from my.abstraction.layer.AFactory import AFactory
...
myA = AFactory.giveMeA() # this looks at "OldVersion" and gives me the correct A
foo = myA.doSomething(bar)
Run Code Online (Sandbox Code Playgroud)

有没有办法让我更轻松?没有工厂层?现在,这可以将我的类上的每个静态方法调用转换为2行.我总是可以在类中保留一个引用以减少影响,但我真的希望python有一个更简单的解决方案.

python import conditional factory-pattern

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

如何确定运行Python脚本的操作系统是否类似于Unix?

我正在尝试通过Python脚本确定操作系统是否基于Unix.我可以想到两种方法,但它们都有缺点:

  • 检查是否platform.system()在元组中("Linux", "Darwin").这个问题是我不想提供每个类似Unix系统的列表,特别是有许多*BSD变种.
  • 检查函数是否os.fchmod存在,因为此函数仅在Unix上可用.这似乎不是干净或"Pythonic"的方式.

python unix

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

标签 统计

python ×3

conditional ×1

factory-pattern ×1

import ×1

principles ×1

unix ×1