Python 板


LINE

請問一下在python裡 有辦法藉由class裡的某個member(attribute) 就找到該Class嗎? 假設c裡面是這樣寫的話 struct A { .... .... int a; //certain member }; struct A a; void *ptr = &a.a; ptr= ptr - ((struct A *)0)->a; ptr這時候會等於 &a; 這樣子的暴力手段python有辦法實作出來嗎? 或是有什麼其他替代方案? 我看introspection裡好像沒提到這段... --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.168.200.162
1F:推 yzugsr:沒有 08/03 16:01
2F:→ xinu:thanks,所以python只能用指到struct指到頭的方式囉? 08/03 17:07
3F:→ qrtt1:有什麼理由一定要那樣寫@@? 08/04 10:08
4F:推 ykjiang:就算是 C ,最好也不要這樣寫吧;既難看又不跨平台 08/04 13:25
5F:→ xinu:Linux裡的list就是這樣寫的,沒人說過Linux難看又不跨平台吧.. 08/04 19:46
6F:→ xinu:剛學Python,好奇在低階語言裡的東西Python有沒有對應的技術.. 08/04 19:48
7F:推 ykjiang:我先收回不跨平台評語,但我真看不懂在寫啥,確定沒筆誤? 08/04 23:20
8F:→ ykjiang:C 要 list 也沒人會這樣寫吧... 08/04 23:21
9F:推 ibmibmibm:C在stddef.h有offsetof的macro 08/05 01:15
10F:推 qrtt1:python 就有 list 了, 需要自己搞一個嗎@@? 08/05 08:29
11F:推 ykjiang:offsetof 會寫在 stddef.h 就是因為各平台的寫法不同 08/05 12:16
12F:→ yjc1:在C中這技巧很常見,尤其在 embedded 平台. 可以大幅簡化程式 08/05 23:15
13F:→ yjc1:btw,python與C的哲學不同,用到這種設計通常表示出了問題, 08/05 23:18
14F:→ yjc1:一定有更好的設計或方法取代 08/05 23:19
15F:推 ykjiang:這行明顯有誤,怎沒人提 ptr= ptr - ((struct A *)0)->a; 08/05 23:50
16F:→ ykjiang:有 offsetof 用,就乖乖用比較不會出錯,也可避掉平台問題 08/05 23:52
17F:→ xinu:我想不用stddef.h的原因是因為Linux Kernel不用C lib的定義 08/06 23:04
18F:→ xinu:應該是ptr-(void *)..原list.h寫的沒那麼粗糙 08/06 23:12
19F:→ xinu:剛好看到Linux裡的這段覺得很有趣, 想用剛學的Python作作看 08/06 23:16
20F:→ xinu:他這樣寫的好處應該是不需要Object之類的東西把大家串起來 08/06 23:18
21F:推 ykjiang:剛稍微看了這個 list.h ,果然是個精緻的設計; 08/08 00:31
22F:→ ykjiang:代碼高度可重用,空間效率也比經典的 C++ template 版本好 08/08 00:36
23F:→ ykjiang:不過這種用法在 Python 乃至 JAVA 上,都沒多大意義 08/08 00:38
24F:→ ykjiang:因這類語言原本就可只寫一套「演算法」來操作「各類資料」 08/08 00:47
25F:→ ykjiang:,且不會有 C/C++ macro 或 template 展開後變癡肥的問題 08/08 01:17







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP