Pythonで静的変数をカウントする方法
今日、Pythonで1つのファイルの下にどれだけのファイルがあるかを統計する小さな標本を書くとき、難しい問題に遭遇しました.Pythonで静的変数を使用してカウントする方法.そして、ネット上で検索すると、探す方法はすべてクラスの方法を利用して静的変数を実現します.正直に言ってよく分からなかったし、クラスメンバーを静的変数としてカウントするのは面倒ではないかと思いますが、ADD()関数を作成してプラス1操作(カウントするから?)を実現しなければならないと思います.実は、クラスメンバーの方程式で静的変数をどのように実現するか分からないので、この方法を放棄しました.
私は主にこの文章を参考にしました.http://www.jb51.net/article/65762.htm
この論文では主に3つの方法を用いてアキュムレータを実現した.
メソッド1、クラスを通過する_init__および_call__方法
メソッド2、関数にクラスを定義する
方法3、スタック上の匿名パラメータを使うのは簡単だと思いますが、私もこの方法で実現しました.
pythonの公式の2.6環境で実行し、上記の3つのコードの結果はすべて
ここで、文章の作者の助けと分かち合いに感謝します.
自分のコード:
呼び出し方法は次のとおりです.
私は主にこの文章を参考にしました.http://www.jb51.net/article/65762.htm
この論文では主に3つの方法を用いてアキュムレータを実現した.
メソッド1、クラスを通過する_init__および_call__方法
class foo:
def __init__(self, n=0):
self.n = n
def __call__(self, i):
self.n += i
return self.n
a=foo()
print a(1)
print a(2)
print a(3)
print a(4)
メソッド2、関数にクラスを定義する
def foo2 (n=0):
class acc:
def __init__ (self, s):
self.s = s
def inc (self, i):
self.s += i
return self.s
return acc (n).inc
a=foo2()
print a(1)
print a(2)
print a(3)
print a(4)
方法3、スタック上の匿名パラメータを使うのは簡単だと思いますが、私もこの方法で実現しました.
def foo3 (i, L=[]):
if len(L)==0:
L.append(0)
L[0]+=i
return L[0]
print foo3(1)
print foo3(2)
print foo3(3)
print foo3(4)
pythonの公式の2.6環境で実行し、上記の3つのコードの結果はすべて
1
3
6
10
ここで、文章の作者の助けと分かち合いに感謝します.
自分のコード:
'''
:Pic_Num()
:
:dir_path----
'''
def Pic_Num(dir_path,count):
parents = os.listdir(dir_path)
for parent in parents:
child = os.path.join(dir_path,parent)
if os.path.isdir(child):
Pic_Num(child,count)
else:
count[0] += 1
return int(count[0])
呼び出し方法は次のとおりです.
a = Pic_Num('E:/practical_face/result/code/video/Output/txt',L=[0])
ここでのcountは実際にはlistですが、値は1つしかありません.