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