相关疑难解决方法(0)

使用'导入模块'或'从模块导入'?

我试图找到一个关于是否最好使用的综合指南import modulefrom module import?我刚刚开始使用Python,我试图从最初的实践开始.

基本上,我希望如果有人能分享他们的经验,有什么喜好其他开发商,什么是避免任何的最好办法陷阱的道路?

python python-import

370
推荐指数
12
解决办法
13万
查看次数

Python导入有哪些好的经验法则?

我可以通过多种方式在Python中导入模块而感到困惑.

import X
import X as Y
from A import B
Run Code Online (Sandbox Code Playgroud)

我一直在阅读有关作用域和名称空间的内容,但我想就什么是最佳策略,在哪种情况下以及为什么,提供一些实用的建议.是否应该在模块级别或方法/功能级别进行导入?在__init__.py模块代码本身中?

我的问题并没有真正回答" Python包 - 按类导入,而不是文件 ",尽管它显然是相关的.

python python-import

71
推荐指数
5
解决办法
5万
查看次数

INCLUDE与Fortran中的模块之间的区别

使用带use声明的模块或带声明的隔离文件有什么实际区别include?我的意思是,如果我有一个使用了很多在整个程序中的子程序:当或为什么我应该把它放在一个模块内部或者只是把它写在一个单独的文件,包括它在它需要程序的所有其他部分用过的?

另外,将所有子程序写入单独文件中的模块并include在模块内使用是不是一个好习惯?特别是如果在子程序的代码很长,这样才能保持代码组织得更好(这样子程序都装在国防部,但如果我有编辑一个我并不需要去虽然代码迷宫).

fortran module include

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

在Fortran 90中模拟命名空间

Fortran 90最棘手的问题之一是缺少命名空间.在Pete的前一个问题" 你如何使用Fortran 90模块数据 "中,已经讨论了USE在Python中表现得像"from module import*"的主要问题:在模块中声明为public的所有内容都被导入为 -在导入模块的范围内.没有前缀.这非常非常难以理解,同时阅读一些代码,其中给定的标识符来自,以及是否仍然使用给定的模块.

我在上面链接的问题中讨论的一个可能的解决方案是使用ONLY关键字来限制导入的标识符并记录它们来自哪里,尽管当模块非常大时这非常非常繁琐.保持模块小,并始终使用USE:ONLY是一个很好的策略,可以解决Fortran 9X中缺少命名空间和限定前缀的问题.

还有其他(不一定更好)的解决方案策略吗?Fortran 2k3标准是否有关于命名空间支持的说法?

fortran namespaces

10
推荐指数
3
解决办法
3261
查看次数

我为什么要在Fortran中使用"use,only"

在python中这样的声明:

from module import function354
Run Code Online (Sandbox Code Playgroud)

有道理,因为Python是一种解释器语言,我不希望python加载所有353个其他函数.

Fortran有一个类似的结构:

use module, only : function354
Run Code Online (Sandbox Code Playgroud)

我为什么要用这个?编译器无论如何都会创建一个*.mod文件,编译所有函数.如果我指定only-statement,是否有任何性能优势(在编译或运行时)?

我可以看到避免命名冲突可能会有所帮助,但除此之外,我并没有真正看到这一点.

fortran

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

如何避免在每个子程序中声明和设置变量的值?

如何避免在子程序中重复声明具有常量值的变量?

例如:

program test
  implicit none

  integer :: n
  integer :: time

  print*, "enter n" ! this will be a constant value for the whole program
  call Calcul(time)
  print*, time  
end program

subroutine Calcul(Time)
  implicit none

  integer :: time 

  ! i don't want to declare the constant n again and again because some times the subroutines have a lot of variables.  
  time = n*2 
end subroutine
Run Code Online (Sandbox Code Playgroud)

有时,有很多由用户定义的常量,我会制作很多使用这些常量的子例程,所以我想存储它们并使用它们,而不是一次又一次地重新定义它们。

fortran fortran90

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