腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
“
我们
是
不
可变
的
,
所以
使用
__
new__
而
不是
__
init__
”
、
、
我在标准库
的
模块fraction.py中找到了这句话: class Fraction(numbers.Rational): def __
new__
(cls, numerator=0, denominator=None我之
所以
对它感到困惑,是因为严格地说,Fraction实例并
不是
一成不变
的
: import fractions fraction
浏览 17
提问于2019-09-01
得票数 2
2
回答
为什么Python不
可变
类型(如int、str或tuple)需要
使用
`__
new__
()`
而
不是
只
使用
`__
init__
()`?
、
、
、
这个问题与、、和有关,但
不是
重复问题。这些链接没有回答我
的
问题。几乎回答了我
的
问题,但没有回答,因为答案中
的
代码没有运行在Python3.6中,而且在任何情况下,问题并
不是
关于我在这里问
的
具体问题。(见下面我自己
的
答案。 __
new__
()
的
主要目的
是
允许不
可变
类型
的
子类(如int、str或tuple)自定义实例创建。但是,为什么
是
?为
浏览 1
提问于2017-08-17
得票数 3
回答已采纳
2
回答
派生自str
的
类
的
构造函数,具有不同
的
签名。
、
、
我试图基于str创建一个简单
的
派生类,并添加一个实例变量flag。由于不明白
的
原因,如果我试图将标志传递给构造函数,则会出现一个错误: def __
init__
(self, content, flag=module>TypeError: str() takes at most 1 argument (2 given) 我已经检查过,在成功
的
调用
浏览 3
提问于2012-09-22
得票数 3
回答已采纳
1
回答
子类datetime.timedelta时
的
奇怪行为
、
、
、
为了方便起见,我想创建datetime.timedelta
的
子类。其思想
是
将类定义为这样: def __
init__
(self, hours):
所以
我可以快速创建这样
的
时间差:然而,上面的代码产生
的
是
n天
的
时间增量,
而
<e
浏览 4
提问于2014-03-20
得票数 8
回答已采纳
2
回答
创建一个将其值保存为大写字符串
的
Python类不起作用
、
、
def __
init__
(self, value):...AssertionError我知道,如果没有init方
浏览 4
提问于2011-07-14
得票数 0
回答已采纳
2
回答
Python
的
__
new__
用例是什么?
我理解__
new__
所做
的
事情(以及它与__
init__
有何不同),
所以
我对定义不感兴趣,我感兴趣
的
是
何时以及如何
使用
__
new__
。文件上说: 但是,我想不出
使用
__
new__
的
其他情况,也想不出如何正确
使用
它(
浏览 2
提问于2012-10-11
得票数 12
回答已采纳
1
回答
__new__
的
工作方式不同?
、
、
、
从问题我很想知道为什么,特别是: >>> class testclass1(object): ... pass >>> a = obj
浏览 0
提问于2013-10-09
得票数 7
回答已采纳
3
回答
`__
init__
`能做`__
new__
`不能做
的
事情吗?
、
在Python中,__
new__
用于初始化不
可变
类型,__
init__
通常初始化
可变
类型。如果将__
init__
从语言中删除,那么还能做什么(很容易)呢?__
init__
(**kwargs)可以像这样
使用
__
new__
重写:
浏览 3
提问于2016-02-17
得票数 30
回答已采纳
1
回答
为init用str对元组进行子类
、
、
、
、
我正在尝试创建一个tuple
的
子类,它在所有方面都有行为,比如一个普通
的
tuple,但我用一个字符串初始化它,该字符串首先由构造函数自动拆分(我还希望它
的
__str__()再次加入,但这
不是
问题所在)。我认为这是直截了当
的
,我试过这样做: def __
init__
(self, text): super(C, self).我调试了这种情况,发现我
的
代码得到了正确
的
执行(我
的
__
init
浏览 2
提问于2017-02-23
得票数 2
回答已采纳
1
回答
在从int、float或str继承
的
类中设置参数
的
值。
、
、
、
当我试图设置继承自str
的
类
的
参数
的
值时,会引发错误。只有当我尝试
使用
myClass(arg = 'test')访问参数时,才会发生错误。__
new__
是
真正
的
构造函数(__
init__
不是
构造函数!)。当
我们
使用
不
可变
类型(str、int、float、tuple)时,情况略有不同。在之前
的
伪代码中,我编写了def __
new__</e
浏览 0
提问于2015-12-25
得票数 6
回答已采纳
6
回答
Python (和Python ):__
new__
与__
init__
、
、
实际上,这种区别对我来说是很自然
的
,因为我在C++方面有经验,
我们
有,它同样将对象分配与初始化分离开来。
所以
,是的-我知道__
new__
做了什么,但尽管如此,我还是不明白为什么它在Python中有用。_
浏览 2
提问于2011-02-01
得票数 151
回答已采纳
1
回答
继承类Decimal,并在构造函数中添加另一个输入参数
、
、
一个很小
的
例子来重现我
的
问题: def __
init__
(self, value,__
init__
(value)抛出:中也描述了一个类似的问题,但答案表明,这是一个修复在Python3.3上
的
浏览 1
提问于2022-08-31
得票数 0
回答已采纳
2
回答
继承python有序元组中
的
元组
、
、
我想创建一个类: if U[i] > U[i+1]: def qtmin(self):
浏览 15
提问于2022-07-17
得票数 1
回答已采纳
3
回答
__new__
的
工作方式
是
不同
的
?
、
、
def __
init__
(self,param): ... ... pass <__main__.testclass3 object at 0x276a810> 我
的
问题
是
,在这两种情
浏览 3
提问于2013-09-08
得票数 5
回答已采纳
2
回答
为什么不只是__
new__
,
而
不是
__
new__
和__
init__
?
如果NumStorage实例
的
初始化可以在__
new__
中进行,那么为什么__
new__
甚至需要一个__
init__
呢?另一件让我感到困惑
的
事情
是
:如果
我们
确实将__
init__
方法添加到NumStorage类中,则如下所示: print("initializing")
浏览 0
提问于2014-02-05
得票数 2
回答已采纳
3
回答
确保仅在通过构造函数或__
new__
创建类实例时调用__
init__
一次
特别是,我注意到当
使用
构造函数时,__
init__
方法将在__
new__
之后自动调用,
而
当直接调用__
new__
时,__
init__
类不会被自动调用。我可以通过在__
init__
中嵌入对__
init__
的
调用来强制在显式调用__
new__
时调用__
new__
,但是当通过构造函数创建类时,__
init__
最终将被调用两次。例如,考虑下面的玩具类,它存储一个内部属性,即一个名为data
浏览 1
提问于2011-12-26
得票数 9
回答已采纳
3
回答
Python:为__
init__
扩展int和MRO
、
、
在Python中,我尝试扩展内置
的
“int”类型。在这样做
的
时候,我想把一些键盘参数传递给构造函数,
所以
我这样做: def __
init__
(self, val, **kwargs): # Do something with kwargs here...__mro__返回预期
的
: (<class '__main__.C'>, <type &
浏览 0
提问于2009-07-26
得票数 10
回答已采纳
1
回答
PyTorch在PyCharm中
的
特殊检验问题
、
是否有人能够解决PyTorch在PyCharm中
的
具体检查问题?以前关于非PyTorch相关问题
的
文章建议升级PyCharm,但我目前处于最新版本。当然,一种选择
是
完全禁止某些检查,但我宁愿避免这种情况。 示例:torch.LongTensor(x)给出了“意外
的
参数.”,而这两种调用签名(带和不带x)都受到支持。
浏览 1
提问于2017-06-13
得票数 8
1
回答
Python:
使用
Int超类获取TypeError: int()无法转换具有显式基
的
非字符串
使用
下面的代码,我得到了以下错误: def __
init__
(self,name1,name2):C4_inst=C4(3,6)当我只对__
init
__
使用
一个参数时,我看不到错误。你能解释一下为什么python会尝试将参数转换为int,而这里
的
目标<
浏览 0
提问于2015-11-01
得票数 0
2
回答
使用
多个__
init__
参数对元组进行子类化
、
、
、
下面的代码可以工作: super(Foo, self).__
init__
(tuple(b)) print Foo([3, 4]) 结果:(3, 4)class Foo(tuple): def __
init__
浏览 0
提问于2009-10-14
得票数 56
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券