白癡
「一句話也沒有說,絲毫警告都沒有,她打了我一個嘴巴。野蠻女人,真的是野蠻式的。」
不僅是不一致,卻又是很混亂的。
一個人穿著半軍事的大外衣,一個短胖的人物,不住的發笑;一個六呎多高的大個,也很健壯,極其靜默和陰沉,顯然是仗著拳頭主義的。有一個醫學校的學生,還有一個毛遂自薦的波蘭人。
「一句話也沒有說,絲毫警告都沒有,她打了我一個嘴巴。野蠻女人,真的是野蠻式的。」
不僅是不一致,卻又是很混亂的。
一個人穿著半軍事的大外衣,一個短胖的人物,不住的發笑;一個六呎多高的大個,也很健壯,極其靜默和陰沉,顯然是仗著拳頭主義的。有一個醫學校的學生,還有一個毛遂自薦的波蘭人。
最愚蠢的理由:不論任何時代,任何地方的任何人,不論他是誰,他總喜歡按照他選擇的方式行動,而絲毫不願依照理性與利益。然則人不僅可以選擇與他自己的利益完全相反的東西,有時甚至確實應當。無拘無束的選擇,自己的任性(不論何等放肆),自己的幻想(不論何等瘋狂)──這就是我們所忽視的「最有益的利益」,它不能歸入任何分類,但任何系統與學說碰到它都會一成不變的粉碎無餘。
人所需要的僅是獨立的選擇,不論這種獨立需付出何等代價,亦不論這種獨立會把它導向何種方向。
理性所知道的是什麼東西?它所知道的僅是它所已學到的東西,(而有些東西,可能永遠學習不到;這很糟糕,但為什麼不坦坦白白承認?)而人類的本性卻是一個整體,它要做為一個整體來行動。有意識或無意識的,與它裡面的一切因素共同行動,而即使它走錯了方向,還是活下去。
有一個狀況,僅有一個狀況,人們有意識的、蓄意的欲望與他有害的事物,欲望愚蠢的事物,最最愚蠢的事物──僅僅為了取得欲望愚蠢之事的權利,而不願被拘束於僅僅欲望明智之事的束縛之中。
而人卻是膚淺而不合條理的動物,他很可能,像玩棋子的人,只愛遊戲的進行,卻不愛它的結束。而誰又知道,人類在世間所掙扎獲取的唯一目標不就是這種無止息的獲取過程而非所獲取之物?這種獲取過程的另一種說法,即是生活本身,而獲取之物乃是生活的結果,可以用公式加以表達,其確定性就如同二二得四。
近來我常常感到,為了一點瑣小的事情便容易激動,使我的生活和我對於生活的清楚看法都受到障礙,這種激動又有什麼意義呢?
他那出奇的消瘦也使我吃驚:他幾乎就好像沒有肉體一樣,除了皮包骨頭以外,彷彿一無所有。
老人機械地望著謬勒,依舊是那麼呆頓的臉上,顯出一種紛擾的思念,一種不安的激動底痕跡。
在這個可憐的老人底馴順而服從的慌張中間,有種東西是那樣激動著人們的同情和那樣絞壓著人們的心。
為什麼一個人所希望的要比能實際得到的更多呢?這失望常常是存在這種人的心裡。他們最好是安靜地住在他們的角樓裡,不要跑出到社會上來。
長老是把你的靈魂、意志吞沒在他自己靈魂、意志裡的人,選擇長老就意味著放棄自己的意志,一切聽從他。
每個女人身上都有一點兒別的女人所沒有的東西,老處女也不例外。
其實,誰的生活都不乾淨,只不過旁人偷著來,我是公開的。現在那幫幹髒事倒攻擊起我來。天堂我是不去的。
如果真有上帝並不稀奇,稀奇的是要創造上帝的思想。
我從一開始就想不通如何能愛自己的鄰人,遠些的人或許還可以。要愛一個人,那個人必須不露面,否則愛就會消失。
伊凡:我覺得基督的愛,世上不可能有。人類是很殘忍的,前不久在莫斯科聽一個保加利亞人講,土耳其人在境內行兇燒掠,姦淫婦女,用鐵釘把囚犯的耳朵釘在牆上直到天亮,再絞死他們,比野獸還殘忍。他們殘殺起孩子更是巧妙地藝術化了,包括用匕首從母腹中剖出嬰孩,或把嬰兒拋向空中,再用刺刀接住。甚至有個土耳其人在把一個嬰孩逗笑的時候,開槍打碎了他的腦袋…許多人有一種虐待小孩的嗜好,他們對待旁人溫和良善之至,完全像個有修養的貴族,卻特別愛虐待小孩。我知道一對父母變著法兒虐待五歲的親生女兒,大冷天把她關在廁所裡挨凍,逼她吃屎,作母親的居然能在孩子痛苦的呻吟中安然入睡…大人的痛苦就不去提了,因為他們已經吃了禁果,可是這些天使般的孩子呢?
你看,世界上有那麼多的荒誕,世界根本就是建立在荒誕之上。人類的痛苦不幸完全是自找的,用不著憐憫。我只知道人間有太多的血淚,但沒有誰能對此負責。這不會叫我心安理得,我要報復,否則寧肯自我毀滅。我堅信這報復終將出現在地球上,即便那時我死了,也會復活過來。我的罪惡和痛苦不是為旁人做孕育未來和諧的養料,我希望有一天能親眼看見溫順的雛鹿和獅子睡在一起,被殺的人和殺人者擁抱。
孩子們沒有理由為人類的一切罪行負責。有人說,小孩子總有一天會長大,也有可能成為罪人,但八歲的時候她就讓獵狗撕碎了。所以,我絕不接受最高的和諧,它的價值與那個關在廁所裡挨餓受凍的孩子悽慘的眼淚相比,一文不值。那眼淚若得不到補償,世間哪還會有和諧可言。我不願有和諧,它的價碼太高了,我買不起入場券,只好把它退還。
世上不可能沒有僕人,但是應該使僕人比不做僕人時更自由。
所謂地獄,我以為它是「因為不能再愛而受到的痛苦」。談到地獄之火,有人通常把它看作是物質的,即便那樣,也該高興,因為物質的磨難,或許可以使他們忘卻更可怕的精神磨難。
他唯一的心願是想看他和她在一起是什麼樣兒,他心底湧起對這個女人從未有過的愛。對自己這份新鮮的情感,自己也覺得陌生,這是一種快要消亡的情感。
諸位,別怕,我來沒有什麼。我只想同你們一起待到早晨。我想在這裡度過我最後的快樂一夜。我熱愛過我的女王。
我喜歡觀察現實世界,你看狗們有它一種共同的自然法則,看起來似乎有點可笑,但自然界存在的一切沒什麼可笑的,要說可笑,倒是人類可笑的地方更多。
麗莎的夢:黑夜裡我拿著蠟燭,獨自待在房裡,四面的小鬼把房門打開,門外也有一群鬼想進來抓我。眼看就抓住我了,我趕緊畫個十字,它們就害怕了,駐足不前。我張嘴罵上帝,它們便又歡天喜地來抓我,我又畫了十字,它們又走了。真痛快。
他們覺得我怎麼樣,我才不在乎吶!多少年他們取笑爸爸,你知道為甚麼?因為我們和這個瘋人院似的城市合不來!我們應該在空曠的原野攪拌洋灰,或者―或者做木匠。木匠是可以隨便吹口哨的!
多麼偉大的女性阿!上帝造了她之後,就把模子給毀了。
你跟他談話的時候,要是他桌上有甚麼東西掉在地上—比如說一個包兒或甚麼的—你可別把它撿起來。
我總是跟垃圾場泡上了!我剛付清汽車的分期付款,那架車快就要壽終正寢了。這個電冰箱好像鬼上身的瘋子一樣,橡膠帶剛換上就給咬斷了。他們是算準時間的,他們把機器算定時間,等你付清最後一期的錢,機器也就玩兒完了。
八十四歲的年紀,他不用走出房間,就可以靠這樣吃飯。我看在眼裡才恍然大悟,原來推銷員是個再好不過的行業。一個人到了八十四歲的年紀還能夠跑二三十個碼頭,拿起電話來就有那麼許多人記得他,喜歡他,幫他的忙。還有甚麼比這個更美的事嗎?你知道嗎?他死的時候──說起來,他死也死得像推銷員──他死的時候,有好幾百個推銷員和買主去送葬。一連幾個月有火車上有很多人為著他傷心。那時候講人品,講尊敬,講交情,講知恩必報。現在,甚麼都是死牌死板的,再也沒有講交情講人品的餘地了。你明白我的意思嗎?他們都不認識我了。
你不能像吃橘子一樣就把橘皮扔了的──人可不是水果阿!
這個世界只有你能賣錢的東西才是你的。可笑的是:你是個推銷員,可是連這個道理你都不懂。
這是豬狗不如的日子。我後悔世界大戰的時候,他們沒把我拉到軍隊裡去,到現在不見得就不活著了。
他只對我看了一眼───我就恍然大悟:我這一輩子整個而是多麼大一個謊,笑死人的謊!
在那座大廈半中間,我站住了,我瞧見───天空。我看見了世界上我心愛的東西。工作,吃的東西,和坐著抽菸的閒工夫,我望著那隻墨水筆,自己跟自己說:我他媽的偷這個東西幹嘛阿?為甚麼我要把自己變成一個我不願意做的人?為甚麼我要在一個辦公室裏做大傻瓜,苦苦哀求得讓人家瞧不起?實際上我所要的就在外邊兒等我,只要我開口說:我知道我是老幾!
1 2 3 4 5 6 7 |
class Car(object): def break(): # note not passing 'self' here pass car = Car() car.break() # TypeError: break() takes no arguments(1 given) |
1 2 3 4 5 6 7 |
class Integer(object): def set_value(self, val): try: val = int(val) except ValueError: return self.val = val |
1 2 3 4 5 6 7 |
class Integer(object): def __init__(self, val): try: val = int(val) except ValueError: val = 0 self.val = val |
Set class variable and instance attribute the same name to show the difference and look up order:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class SomeClass(object): val = 'this is a class variable' instance = SomeClass() print(instance.val) # this is a class variable instance.val = 'this is a instance variable' print(instance.val) # this is a instance variable del instance.val print(instance.val) # this is a class variable<span id="mce_marker" data-mce-type="bookmark" data-mce-fragment="1"></span> |
The attribute look up order: when request an attribute to an instance, it looks for that attribute in the instance first then in the class.
Access class variable in instance:
1 2 3 4 |
class SomeClass(object): val = 0 def __init__(self): SomeClass.val += 1 |
An example from stackoverflow:
1 2 3 4 5 6 7 8 9 10 11 |
class Person(object): def pay_bill(): raise NotImplementedError class Millionare(Person): def pay_bill(): print "Here you go! Keep the change!" class GradStudent(Person): def pay_bill(): print "Can I owe you ten bucks or do the dishes?" |
or an built in len method as an interface implemented by list and set object:
1 2 3 4 5 6 7 |
l = [1, 2, 3] s = (1, 2, 3) l.__len__() /*3*/ s.__len__() /*3*/ |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Animal(object): def __init__(self, name): self.name = name class Dog(Animal): def __init__(self, name): super(Dog, self).__init__(name) ''' if the name of Animal class change in the future or rearrange the class hierarchy that Dog class inherite from another class and we want to call that constructor instead ''' |
Multiple inheritance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class A(object): def run(self): print('run in A') class B(A): pass class C(object): def run(self): print('run in C') class D(B, C): pass D.mro() ''' the order is : [<class '__main__.D'>, <class '__main__.B'>, <class '__main__.A'>, <class '__main__.C'>, <class 'object'>] ''' |
After Python 2.3, add a role for diamond shape ambiguous inheritance
(Make C inherit A in this example)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class A(object): def run(self): print('run in A') class B(A): pass class C(A): def run(self): print('run in C') class D(B, C): pass D.mro() ''' if the same class appears in a method resolution order, the earlier occurrences are removed from [__main__.D, __main__.B, __main__.A, __main__.C, __main__.A, object] to [__main__.D, __main__.B, __main__.C, __main__.A, object] ''' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import abc class GetterSetter(object): __metaclass__ = abc.ABCMeta @m.abstractmethod def set_val(self, input): return @m.abstractmethod def get_val(self): return class MyGetterSetter(GetterSetter): def set_val(self, input): self.val = input def get_val(self): return self.val<span id="mce_marker" data-mce-type="bookmark" data-mce-fragment="1"></span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import StringIO class FileWriter(object): def __init__(self, file): self.file = file def write(self, text): # no type checking here as long as the interface stay the same self.file.write(text) f = open('text.txt', 'w') w1 = FileWriter(f) w1.write('writing into a file object...') w1.close sio = String.StringIO() w2 = FileWriter(sio) w2.write('writing into a string io object...') |
Here is an example for inheritance and composition working together:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from myappengine import webfunc, run_app # inheritance: create class inherit from specific class class MainPage(webfunc.RequestHandler): def get(self): self.response.out.write('Here is the MainPage') class FAQPage(webfunc.RequestHandler): def get(self): self.response.out.write('Here is the FAQ Page') # composition: pass class to specific app engine function as an interface app = webfunc.WSGIApplication( [('/', MainPage), ('/faq', FAQPage)] ) def main(): run_app(app) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
In [1]: class Dog(object): def __init__(self, color, age, name): if not isinstance(age, int): raise ValueError self.color = color self.age = age self.name = name def __eq__(self, other_dog): return self.name == other_dog.name and self.color == other_dog.color def __lt__(self, other_dog): return self.age < other_dog.age def __gt__(self, other_dog): return self.age > other_dog.age mike = Dog('black', 1, 'Mike') jack = Dog('white', 4, 'Jack') michael = Dog('black', 10, 'Mike') In [2]: mike < jack Out[1]: True In [3]: mike == michael Out[2]: True |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
class Me(object): def __init__(self, var): self._var = var # encapsulate _var attribute to var @property def var(self) return self._var @var.setter def var(self, var): self._var = var @var.deleter def var(self) self._var = None In [1]: me = Me(1) In [2]: me.var Out[2]: 1 In [3]: me.var = 2 In [4]: del me.var |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class MyClass(object): def __enter__(self): print('We have entered "with"') return self # Use "with" to capture errors def __exit__(self, type value, traceback): print('We have leaved "with"') print('error type: {0}'.format(type)) def do(self): print('Do something...') In [1]: with MyClass() as c: c.do() Out[1]: We have entered "with" Do something... We have leaved "with" In [2]: with MyClass() as c: c.do() 5/0 Out[2]: error type: <type 'exceptions.ZeroDivisionError'> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class MyError(Exception): def __init__(self, **kwargs): self.msg = kwargs.get('msg') def __str__(self): if self.msg: return 'Here\'s MyError Message: %s' % self.msg else: return 'Here\'s MyError' In [1]: raise MyError(msg='Huston, we have a problem.') Out[1]: --------------------------------------------------------------------------- MyError Traceback (most recent call last) <ipython-input-6-de465e9d3c17> in <module>() 9 return 'Here\'s MyError' 10 ---> 11 raise MyError(msg='Huston, we have a problem.') MyError: Here's MyError Message: Huston, we have a problem. |