簡體   English   中英

Python 在不初始化的情況下訪問 class 屬性?

[英]Python access a class attribute without initializing?

我有兩個文件,每個文件都包含一個 class:

# file1.py
class Class1:
    def __init__(self):
        self.d = dict()

    @property
    def get(self):
        return self.d
    

obj1 = Class1()
obj1.d["a"] = 1
obj1.d["b"] = 2

# file2.py
from file1 import Class1 

class Class2:   
    def print_val(self):
        for i in Class1().get:
            print(i)

我試圖在不初始化 Class1 的情況下從 Class2 中的 Class1 訪問屬性d 以下當前返回一個有意義的空字典。

Class2().print_val()
{}

class Class1沒有屬性d 只有Class1類型的對象具有屬性d 如果你想打印obj1.d的成員,你當然可以這樣做,但你必須以某種方式將obj1傳遞給print_val

您可以在Class1上創建class 變量,因為您不想實例化Class1

class Class1:
    d = dict()


Class1.d['a'] = 'A'
Class1.d['b'] = 'B'


class Class2:
    def print_val(self):
        print(Class1.d)


c2 = Class2()
c2.print_val()

出去:

{'a': 'A', 'b': 'B'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM