PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] 參考類別變數,但不寫死類別名稱
作者:
ggirls
(哥)
2021-12-26 00:59:57
class ClassName:
DEFAULT_SIZE = 10
def __init__(self):
self.size = ClassName.DEFAULT_SIZE
因為有時ClassName會改,
引用時如何不寫死呢(self.size=...)
作者:
lycantrope
(阿寬)
2021-12-27 13:31:00
可能不想__init__內args有size吧w
作者:
OnoderaHaru
(小野寺春)
2021-12-26 01:03:00
self.__class__
作者:
panex0845
(胖克æ€)
2021-12-26 03:37:00
size = self.DEFAULT_SIZE 就我的認知 這行是多餘的因為初始化self後 DEFAULT_SIZE本來就會從屬於物件沒有必要在初始化建立一個size 只會浪費記憶體空間
作者:
s0914714
(YA)
2021-12-26 08:34:00
樓上是說class attribute 賦值給instance有點多餘self.DEFAULT_SIZE 就是10
作者:
lycantrope
(阿寬)
2021-12-26 09:15:00
真要複製也可以直接寫self.DEFAULT_SIZE... init內寫成 self.size = self.DEFAULT_SIZE就好staticmethod就不該從class內取值啊你還有classmethod可以用吧
作者:
poototo
(poototo)
2021-12-26 10:14:00
self可以直接get類別變數
作者:
OnoderaHaru
(小野寺春)
2021-12-26 13:15:00
稍微查了一些資料, 有錯還請幫忙更正, 個人理解如下
https://i.imgur.com/tM4sFFY.png
查到結果很多都建議使用 type(self) 避免以下副作用
https://i.imgur.com/8htBSwZ.png
作者:
s0914714
(YA)
2021-12-26 17:38:00
__class__和self.__class__ 沒有對它們賦值時兩者相等如果你只是取值那就放心用吧
作者: stucode
2021-12-26 19:58:00
__class__ 和 self.__class__ 是不一樣的。__class__ 參考的是定義方法的類別。self.__class__ 則是物件實際的類別。如果你的方法(包含 __init__)是在基礎類別兩者就有差。
作者:
poototo
(poototo)
2021-12-26 23:47:00
def __init__(self, size=DEFAULT_SIZE):init的參數可以把類別變數設為預設值
繼續閱讀
[問題]matplotlib繪圖
PDPAN
[問題] 使用win32com.client呼叫PowerPoint
chongzhe
[問題] WEB資料視覺化互動
ctr1
[問題] 請問用Python3.10安裝requests
adeniss
[問題] selenium有時會突然卡很久
Federer5566
[問題] flask搭配uwsgi平行處理的問題?
energyaxd
[問題] 請問編寫python的開發軟體
Gracybaby
[心得] Interpolative Decomposition 分享
mikemike1021
Re: [問題] if判斷式裡面可以指定跳到某一行執行嗎
mantour
[問題] if判斷式裡面可以指定跳到某一行執行嗎
eco100
Links
booklink
Contact Us: admin [ a t ] ucptt.com