如何在Python中的类初始化过程中使用变量?

问题描述 投票:0回答:2

我有 3 个 python 脚本,分别是

script1.py
script2.py
script3.py
我已经在 script1 中导入了
script2
script3
类。

当我执行时,我只运行

script1
,它将根据需要调用
script2
中的函数。

但是在

script2.py
中我有一个类,在类中我有一个变量
y_path
,它被设置为与另一个字符串变量连接的
string
,如下所示

class LAUtils(BBCAPIInfra):

     y_path = "/foo/bar/abc/__dname__/pfile.yml".replace("__dname__",str(dname))

dname
的值是使用
script1

中的方法获得的

我的问题是如何在

dname
中的类初始化期间更新变量
script2
的值,例如,如果
dname
值为
MCSX
,我希望变量
y_path
将其设置为
/foo/bar/abc/MCSX/pfile.yml 
已经在类初始化期间。

python python-3.x class oop python-module
2个回答
1
投票

你应该使用构造函数

class LAUtils(BBCAPIInfra):
    def __init__(dname)
        self.y_path = "/foo/bar/abc/__dname__/pfile.yml".replace("__dname__",str(dname))

现在您可以这样使用它:

la_utils = LAUtils(dname) 
print(la_utils.ypath)

0
投票

在 Python 中,您可以在类初始化期间(即在构造函数中)使用变量,方法是将其定义为 init 方法中的参数。当您创建类的实例时,您可以传递该参数的值,它将在初始化过程中使用。

这是一个如何在类初始化期间使用变量的简单示例:

class MyClass:
def __init__(self, my_variable):
    self.my_variable = my_variable

def some_method(self):
    print("Value of my_variable:", self.my_variable)
    # Create an instance of the class and pass a value for my_variable
        instance = MyClass("Hello, World!")

    # Call the method that uses the initialized variable
        instance.some_method()

输出:

Value of my_variable: Hello, World!

在上面的示例中,init方法采用参数my_variable,实例创建期间传递的值(MyClass("Hello, World!"))被分配给类属性self。我的变量。稍后,我们调用 some_method 来访问并打印 self.my_variable 的值。

您可以在init方法中使用多个变量来根据需要初始化类的不同属性。每次创建类的新实例时,您可以为这些变量传递不同的值以自定义每个实例的行为。

© www.soinside.com 2019 - 2024. All rights reserved.