為什么內置不能成為綁定方法?

class Something: pass
f=lambda : True

現在,如果我這樣做了

Something.open=f
g=Something()
g.open()

我得到一個錯誤,TypeError: <lambda>() takes 0 positional arguments but 1 was giveng.open<bound method <lambda> of <__main__.Something object at 0xffff80253400>>。這意味著傳遞給打開的self對象。

然而,如果我這樣做了

Something.open=open
g=Something()
g.open()

我只是得到一個錯誤TypeError: open() missing required argument 'file' (pos 1)g.open只是<built-in function open>,因為可能沒有給open參數。

為什么會有差異?

后續:我可以讓f像built-in函數一樣工作嗎(也就是說,不向它傳遞self對象)?

? 最佳回答:

我不知道你為什么要這樣做,但你可以這樣做:

class Something:
    pass
f=lambda : True
Something.open=staticmethod(f)
g=Something()
print(g.open())
主站蜘蛛池模板: 精品视频一区二区三区在线观看 | 99精品国产高清一区二区麻豆| 2020天堂中文字幕一区在线观| 日本一区二区三区在线网| 亚洲AV无码一区东京热| 国产免费播放一区二区| 精品综合一区二区三区| 精品国产一区二区三区在线 | 国产免费av一区二区三区| 亚洲一区二区三区国产精华液| 一区二区在线免费观看| 国产裸体歌舞一区二区| 国产成人无码一区二区三区在线| 福利一区福利二区| 视频一区二区三区人妻系列| 海角国精产品一区一区三区糖心| 亚洲丰满熟女一区二区v| 亚洲综合色一区二区三区小说| 久久久久一区二区三区| 亚洲色无码一区二区三区| 国产在线精品一区免费香蕉 | 午夜性色一区二区三区免费不卡视频 | jazzjazz国产精品一区二区| 国产一区二区三区四| 青娱乐国产官网极品一区| 一区 二区 三区 中文字幕| aⅴ一区二区三区无卡无码| 国产乱码精品一区二区三| 国产高清一区二区三区四区| 久久久久久一区国产精品| 91一区二区三区| 无码一区二区三区视频| 日本片免费观看一区二区| 亚洲一区在线视频观看| 黑巨人与欧美精品一区| 亚洲视频在线一区二区| 国精无码欧精品亚洲一区| 精品永久久福利一区二区| 精品一区二区三人妻视频| 日韩精品一区二区三区中文字幕| 中文字幕一区二区三区有限公司|