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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Python中的類函數(shù)創(chuàng)建臨時對象?

如何使用Python中的類函數(shù)創(chuàng)建臨時對象?

翻閱古今 2024-01-24 15:20:49
我正在編寫這段代碼,需要將對象作為函數(shù)中的參數(shù)發(fā)送。我的問題是其中一個對象需要以其原始值重新啟動,但因為我需要從函數(shù)返回一個對象。我不知道如何發(fā)送答案并將原始值安全地保存在對象中以供重用。有什么方法可以從類聲明本身創(chuàng)建一個對象嗎?import mathclass Points(object): def __init__(self, x, y, z):    self.x = x    self.y = y    self.z = zdef __sub__(self, no):        no.x = no.x - self.x    no.y = no.y - self.y    no.z = no.z - self.z        return(no)def dot(self, no):    ans = (self.x * no.x)+(self.y * no.y)+(self.z * no.z)    return ansdef cross(self, no):    x = (self.y * no.z)-(self.z * no.y)    y = (self.x * no.z)-(self.z * no.x)    z = (self.x * no.y)-(self.y * no.x)    self.x = x    self.y = y    self.z = z    return(self)    def absolute(self):    return pow((self.x ** 2 + self.y ** 2 + self.z ** 2), 0.5)if __name__ == '__main__':points = list()for i in range(4):    a = list(map(float, input().split()))    points.append(a)a, b, c, d = Points(*points[0]), Points(*points[1]), Points(*points[2]), Points(*points[3])x = (b - a).cross(c - b)y = (c - b).cross(d - c)angle = math.acos(x.dot(y) / (x.absolute() * y.absolute()))print("%.2f" % math.degrees(angle))我想做類似的事情:def function_name(self,other)  temp.x = self.x + other.x  temp.y = self.y + other.y  return temp這樣兩個輸入對象都會有它們的原始值,但我不知道如何獲取該溫度。
查看完整描述

2 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗 獲得超5個贊

我得到了我正在尋找的答案。我想要一個對象充當(dāng)可以存儲類變量的容器,但我不知道我可以從其中創(chuàng)建該類的新對象!


import math

class Points(object):

    def __init__(self, x, y, z):

        self.x=x

        self.y=y

        self.z=z


    def __sub__(self, no):

        return  Points((self.x-no.x),(self.y-no.y),(self.z-no.z))


    def dot(self, no):

        return (self.x*no.x)+(self.y*no.y)+(self.z*no.z)


    def cross(self, no):

        return Points((self.y*no.z-self.z*no.y),(self.z*no.x-self.x*no.z),(self.x*no.y-self.y*no.x))

        

    def absolute(self):

        return pow((self.x ** 2 + self.y ** 2 + self.z ** 2), 0.5)

正如您所看到的,使用點(即類 Points 的構(gòu)造函數(shù)),我可以存儲任何操作的結(jié)果,并將其作為對象返回,同時不更改我的輸入對象。


查看完整回答
反對 回復(fù) 2024-01-24
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊

如果您想要做的是重用已傳遞給類對象的變量,則只需在語句中__init__或在使用它的函數(shù)中復(fù)制它即可。


例如


class Foo:

??

? def __init__(self, my_var1, my_var2):

? ? self.my_var1 = my_var1

? ? self.my_var2 = my_var2


? def bar(self):

? ? bar_var1 = self.my_var1

? ? bar_var2 = self.my_var2

? ? bar_var1 = bar_var1 + bar_var2

? ? return bar_var1

盡管如此,我對為什么你試圖selfcross函數(shù)中返回(就像self類參數(shù)一樣)感到有點困惑,而且你似乎沒有在其預(yù)期目的中使用它。


查看完整回答
反對 回復(fù) 2024-01-24
  • 2 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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