第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

添加的類如何使用主類的屬性?

添加的類如何使用主類的屬性?

汪汪一只貓 2023-03-08 14:21:16
所以,我有這個(gè)類 ComplexSystem。此類具有自己的屬性(本例中為 attr_a)。它也有幾個(gè)要素。在另一個(gè)過程中,調(diào)用元素的方法,并且需要 ComplexSystem 的屬性來計(jì)算某些東西。我應(yīng)該怎么做?我在這里提供了一個(gè)例子:class ComplexSystem:    def  __init__(self, attr_a):        self.attr_a  = attr_a        self.elements = []    def add_element(self, element):        self.elements.append(element)class Element:    def do_something(self):    ### I want to use the attr_a of the ComplexSystem here, what should I do?mySystem = ComplexSystem("foo")new_element = Element()mySystem.add_element(new_element)mySystem.elements[0].do_something()
查看完整描述

3 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

您無法訪問該屬性,因?yàn)槟腅lement對(duì)象不知道該類ComplexSystem。有一些方法可以訪問該屬性。


1-您可以定義attr_a為靜態(tài)屬性(并非總是可行)


2- 你可以將你的ComplexSystem對(duì)象傳遞給你的Element對(duì)象(檢查@milanbalazs 答案)


3-向您的Element班級(jí)添加一個(gè)屬性并在添加到時(shí)分配其值ComplexSystem


class ComplexSystem:


    def  __init__(self, attr_a):

        self.attr_a  = attr_a

        self.elements = []


    def add_element(self, element):

        element.assign_attr(self.attr_a)

        self.elements.append(element)


class Element:


    def assign_attr(self, value):

       self.complex_system_attr = value

4- 添加另一個(gè)類來處理數(shù)據(jù)。你可以傳遞attr_a給do_somthing你的類的方法Element,你應(yīng)該將ElementList對(duì)象存儲(chǔ)在你的ComplexSystem類中,而不是當(dāng)前列表中。例子:


class ElementList:

  

   def __init__(self, elements, attr_a):

       self.attr_a = attr_a

       self.elements = elements


   def do_something(self, index):

       self.elements[index].do_something(self.attr_a)


查看完整回答
反對(duì) 回復(fù) 2023-03-08
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

你有更多可能的解決方案嗎?您沒有分享足夠的信息來選擇最適合您的。


您可以將 的實(shí)例傳遞ComplexSystem給Element類(我想在您的情況下沒問題)。


class Element:


    def __init__(self, complex_system_inst):

        self.complex_system_inst = complex_system_inst


    def do_something(self):

        print("attr_a from Element: {}".format(self.complex_system_inst.attr_a))



mySystem = ComplexSystem("foo")

new_element = Element(mySystem)

mySystem.add_element(new_element)

mySystem.elements[0].do_something()

輸出:


>>> python3 test.py

attr_a from Element: foo

在您的情況下,您可以使用您的mySystem對(duì)象,因?yàn)樗诜秶鷥?nèi)(如全局變量)。


class Element:


    @staticmethod

    def do_something():

        print("attr_a from Element: {}".format(mySystem.attr_a))



mySystem = ComplexSystem("foo")

new_element = Element()

mySystem.add_element(new_element)

mySystem.elements[0].do_something()

輸出:


>>> python3 test.py

python3 test.py

attr_a from Element: foo


查看完整回答
反對(duì) 回復(fù) 2023-03-08
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

嘗試使用這個(gè):


class ComplexSystem:


    def  __init__(self, attr_a):

        self.attr_a  = attr_a

        self.elements = []


    def add_element(self, element):

        e = Element()

        e.assign_attr(self.attr_a)

        self.elements.append(e)


class Element:

    def assign_attr(self, value):

       self.complex_system_attr = value


查看完整回答
反對(duì) 回復(fù) 2023-03-08
  • 3 回答
  • 0 關(guān)注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)