rt.
from random import randint
class Baba:
def __init__(self):
self.sex = 'male'
def __getattribute__(self): # ''.join(reversed('ereh gub'))
if randint(0, 1000) % 67 != 0:
return object.__getattribute__(self, attr)
raise AttributeError(f"{type(self).__name__} has no attribute: '{attr}'")
思路:
len = 9
str = 'abc'
暂时想不到一个“短路运算”的好例子;有缘再更。
将 str
用在捕获异常,调用 str(e)
也是个不错的例子;有缘再更。
def func(param1, default_param=[]):
pass
想到好例子再更;
======
感觉还是用 C 语言写 bug 好写一些;
弄个野指针,bug 可以出现地纯洁的像一朵白莲花。
======
抛砖引玉;有没有什么诡异的 Python bug 代码拿出来晒晒?
1
N1ckl32 2020-09-23 00:17:22 +08:00
追更
|
2
no1xsyzy 2020-09-23 04:03:47 +08:00
就 bug 1 来说,你没用 super()
这在多继承的情况下会发生 bug 比如接下来 . class Mama: . def __getattribute__(self, attr): . return object.__getattribute__(self, attr) . class Erzi(Mama, Baba): . pass 你这个 Baba 就没用咯。 |
3
no1xsyzy 2020-09-23 04:04:46 +08:00 1
@no1xsyzy 啊 . 不能保持空格,改改
class Mama: ....def __getattribute__(self, attr): ........return object.__getattribute__(self, attr) class Erzi(Mama, Baba): ....pass |
5
oahebky OP ## 写 bug 4 - str 的可迭代特性;没有 ensure
具体代码就先不写了,因为「偶尔发生」+「合理」的例子不容易想; 信息都在这个 bug 4 标题里面了。 具体例子有缘再更新。 ------ |