如果函数在 Class 下运行,如何在函数中调用变量

How to call a variable within a function if it runs under a Class

如何在函数中调用变量:

什么是正确的方法:

示例代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import time

timeStamp = time.strftime("%Y%m%d%H%M%S")  # <-- Is this right Approach
class Scanner:

    INFO = 0
    DEBUG = 3
    timeStamp = time.strftime("%Y%m%d%H%M%S") # <-- ?

    def __init__(self, config_file, verbose=False):
        """ Constructor """

    def ask_passwords(self):
    def ldap_init(self):
    def hosts_module_scanner(self):
    def users_module_scanner(self):
    def ldap_reporting(self, user_list):
            self.write_report(failed_users, "users_ldap_report-{}.txt".format(timeStamp))


def option_parser(prog_version):
if __name__ == '__main__':
    scanner.ask_passwords()
    scanner.ldap_init()
    scanner.hosts_module_scanner()
    scanner.users_module_scanner()

注意:在上面的示例中,如果我在 class.

下定义它不起作用

您可以使用语法在 class 中调用变量: self.variable_name = # 无论你分配给变量什么。

至于 class 中的位置,您最好的选择是在 def init_() 位中。

编辑: 作为更详细的答案。您将在 init 方法中定义变量,如下所示。在 class 中使用 self.variable,但在方法之外(class 函数)将抛出“self is not defined”错误。

class Scanner:
    def __init__(self, config_file, verbose=False):
        """ Constructor """
        self.INFO = 0
        self.DEBUG = 3
        self.timeStamp = time.strftime("%Y%m%d%H%M%S")
        #declare rest of variables here
    #other class methods go here