我在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
:
当调用python TestClass.py
时,我得到以下错误:AttributeError:“module”对象没有属性“generateChars”。两个文件夹位于同一级别。我导入类文件的方式或静态方法声明本身有问题吗?在
你也需要在类中定义一个函数名,所以你也需要一个类的引用:
或者,将函数移出类定义的,此时根本不需要使用
^{pr2}$@staticmethod
:在Python中,函数不属于类定义的一部分。在
Python不是Java。在
首先,无论是测试人员还是密码类,都绝对没有意义。如果不存储状态,则不要定义类。使
whatever
和generateChars
成为正常的独立函数。在但是,假设您这样做只是为了了解Python类,那么您还不明白在Python中类不等于模块。既然您已经导入了
Password
模块,您仍然需要引用PasswordHelper
类:或者,可以导入PasswordHelper类:
^{pr2}$最后,请按照PEP8获取模块、类和函数名。在
相关问题 更多 >
编程相关推荐