gpt4 book ai didi

python - 静态方法的正确使用

转载 作者:太空狗 更新时间:2023-10-30 00:36:48 24 4
gpt4 key购买 nike

我在 folder1 中有以下名为 Password.py 的简化类:

import random                                                                    

CHARS = "ABC"

class PasswordHelper(object):
@staticmethod
def generateChars(length):
return ''.join(random.choice(CHARS) for x in range(length))

现在我在 folder2 中有另一个类 TestClass.py:

sys.path.append('../folder1/')                              
import Password

class Tester:
def whatever(self):
print Password.generateChars(3)

def main():
x = Tester()
x.whatever()

# call main method
main()

调用 python TestClass.py 时出现以下错误:AttributeError:“模块”对象没有属性“generateChars”。两个文件夹都在同一层级。我导入类文件的方式或静态方法声明本身有问题吗?

最佳答案

Python 不是 Java。

首先,Tester 或 Password 类绝对没有意义。如果您不存储状态,则不要定义类。使 whatevergenerateChars 成为正常的独立函数。

但是,假设您这样做只是为了了解 Python 类,您还没有理解类不等于 Python 中的模块。由于你已经导入了Password模块,你还需要引用PasswordHelper类:

Password.PasswordHelper.generateChars(3)

或者,您可以导入 PasswordHelper 类:

from Password import PasswordHelper
...
PasswordHelper.generateChars(3)

最后,请按照 PEP8 为您的模块、类和函数命名。

关于python - 静态方法的正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com