小编Dan*_*aga的帖子

从函数访问模块变量是否被认为是不好的做法?

在 Python 中,函数可以按如下方式访问模块变量:

def pow(a):
    return a**b

a = 3
b = 2
print(pow(a))
Run Code Online (Sandbox Code Playgroud)

这被认为是不好的做法吗?

明显的替代方案是将所有参数显式传递给函数:

def pow(a, b):
    return a**b

a = 3
b = 2
print(pow(a, b))
Run Code Online (Sandbox Code Playgroud)

我使用第一种形式来限制传递给函数的参数数量,我想知道这是否被认为是不好的做法。

python variables module function global-variables

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

将Generator转换为Iterator类的最佳方法

考虑下面的虚拟示例:

def common_divisors_generator(n, m):

    # Init code
    factors_n = [i for i in range(1, n + 1) if n%i == 0]
    factors_m = [i for i in range(1, m + 1) if m%i == 0]

    # Iterative code
    for fn in factors_n:
        for fm in factors_m:
            if fn == fm:
                yield fn

# The next line is fast because no code is executed yet
cdg = common_divisors_generator(1537745, 373625435)
# Next line is slow because init code is executed on first …
Run Code Online (Sandbox Code Playgroud)

python iterator generator

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