Python3在不同文件中的类之间的作用域?

2024-10-01 00:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经研究了很多年了,没有发现有人问这个具体的问题(所以也许我遗漏了一些简单的东西!)但是我很难将类划分成不同的.py文件

场景:

主类导入设置类文件和工作类文件..设置类用从对象类文件实例化的对象填充列表

工作类希望在列表中循环,并更改每个对象中的值<;--这就是我要解开的地方

我尝试过让值成为类变量而不是实例。我仍然需要在工作类中导入settings类,以便编写代码来访问要更改的值。但是它不会改变主类中所有这些类都被调用的类的实例

我读了一篇关于房产的文章。他们给出的例子仍然是同一个文件中不同类的例子

任何关于我应该看什么的建议都将不胜感激

我就是这么做的:

运行所有文件的主文件:

import Set_Test
import Test_Code

sting = Set_Test.Settings()
tc = Test_Code.Testy()

ID = sting._settingsID
print(f'Settings ID is: {ID}')

tc.changeVal()

ID = sting._settingsID
print(f'Settings ID is: {ID}')

设置\u Test.py:

class Settings:

    def __init__(self):
        self._settingsID = 1

    @property
    def settingsID(self):
        return self._settingsID

    @settingsID.setter
    def settingsID(self, value):
        self.settingsID = value

测试代码.py:

import Set_Test

class Testy:

    def changeVal(self):
        Set_Test.Settings.settingsID = 8

Tags: 文件对象实例pytestimportselfid
1条回答
网友
1楼 · 发布于 2024-10-01 00:19:14

感谢stovfl在评论中给出了答案。我终于破译了斯托夫尔的意思:D

我想

下面的代码适用于任何想知道的人:

主要内容:

import Set_Test
import Test_Code

sting = Set_Test.Settings()
tc = Test_Code.Testy()

ID = sting._settingsID
print(f'Settings ID is: {ID}')

tc.changeVal(sting)

ID = sting._settingsID
print(f'Settings ID is: {ID}')

设置\u Test.py:

class Settings:

    def __init__(self):
        self._settingsID = 1

    @property
    def settingsID(self):
        return self._settingsID

    @settingsID.setter
    def settingsID(self, value):
        self._settingsID = value

测试代码.py

import Set_Test
sting = Set_Test.Settings()

class Testy():

    def changeVal(self, sting):
        print(sting.settingsID)
        sting.settingsID = 8
        print(sting.settingsID)

相关问题 更多 >