タグ

Pythonに関するrawwellのブックマーク (438)

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • ctypes メモ、ポインタオブジェクト - 銀月の符号

    2つのポインタの指し示す先が同じものかどうか確認する。来ならば比較するだけのはず。しかし、これを Python 、 ctypes でどう実現するのかが分からなかった。 Python でつくられたポインタオブジェクトはあくまで Python のオブジェクトであって C のポインタじゃないから。便利さの代償か。 ctypesはOOR (original object return、元のオブジェクトを返すこと)ではないことに注意してください。属性を取り出す度に、新しい同等のオブジェクトを作成していいるのです http://www.python.jp/doc/release/lib/ctypes-pointers.html >>> from ctypes import * >>> a = c_int(1) >>> b = pointer(a) >>> c = pointer(a) >>> b i

    ctypes メモ、ポインタオブジェクト - 銀月の符号
  • Chapter�1.�python 1.0 - 1.38.0

    rawwell
    rawwell 2009/03/26
    "The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes functions and objects to Python, and vice-versa, using no special tools -- just your C++ compiler. It is designed to wrap C++ interfaces non-intrusively, so that you sh
  • pythonとc++のインターフェイスの比較 swig boost.python ctypes - niitsuma blog

    pythonc++のインターフェイスを作る方法には boost.pythonを使う方法 swigを使う方法 python.ctypesを使う方法 f2py (Fortranを使うためのInterface)を使う方法 pyreを使う方法 直接Cのインターフェイスを作る方法 があるようだ。 http://www.scipy.org/Cookbook のUsing NumPy With Other Languages のセクションにさらに詳しい解説がある。 ここでは特に配列(numpyの行列)をc++と連携して使う方法に注目していくつかの方法を比較する。numpyは数値計算や行列演算を行うpythonのパッケージでnumarrayの後継にあたる。numpyはnumarayと違って行列が配列の先頭ポインター(double *array)を渡すだけでc++とやりとりができる。そのためc++との連携

    pythonとc++のインターフェイスの比較 swig boost.python ctypes - niitsuma blog
  • ABCとインターフェイス - Doge log

    http://enbug.tdiary.net/20090322.html#p01の話だけど。 個人的には両方必要じゃね?と思うんだけど。 まあjavaのような使い分けをする前提ならばだけどね。 そもそもごった煮でどちらかにするとかいう方が間違いなんじゃないかと思うけど。 まあpython文化的に覚えることを増やしたくないとか、明確な使い分けの方法を提示し、PEPに書くのがしんどいとかあるのもわかる。 現状だと使うにしてもどっちつかずで ABCは2.6以降からじゃないとダメ インターフェイスだとzope.interfaceを別途入れてやら無いといかん というめんどくささを抱えてるので「つかわねーよ!バーロー!」という話もあったりする。

    ABCとインターフェイス - Doge log
  • ABCとインターフェース - enbug diary(2009-03-22)

    _ ABCとインターフェース 先日Zope 2.12のalpha1がリリースされて、 いろいろ面白いことになっているので、 手元で遊んでみていました。 Zope 2.12自体でも、Zope 3のオブジェクトがそのまま使えるようになったりとか(aq_parentとかをハックしている)、いくつか楽しい変更があるんですが、Python 2.5/2.6をサポートしたのはかなり大きな進展です。 残念ながら手元の環境のRPMPython 2.5.2なので、Zope 2.12が対応している2.5.4 or better、2.6.xという条件に当てはまりません。 面倒くさいので、手っ取り早く2.6.1をダウンロードしてきて、手元でビルドして使ったんですが、一応動いているように見えます。 Zope自体の話を書いてもいいんですが、ここではPython 2.6の話を書きます。 せっかく最近のPythonが使え

  • GAEでの1000件のリミットの所在 - When it’s ready.

    「GAEのDatastoreって1000件しかデータがとってこれないよねぇ、大変だよねぇ」という、意味が有るのか無いのかよく分からない会話をしたりする訳ですが、1000件というの数が、どこに効くのかなぁと思いテストコード Model.all()が1000件ずつ区切られて、その中でorder掛かったりしても全然うれしくないなぁという事をすっきりさせたかった。 from google.appengine.ext import db class Feed(db.Model): feed_id = db.IntegerProperty() link = db.StringProperty() text = db.StringProperty(required=True) screen_name = db.StringProperty() created = db.DateTimeProperty(

    GAEでの1000件のリミットの所在 - When it’s ready.
  • Hadoop Python: Writing An Hadoop MapReduce Program In Python - Michael G. Noll

    In this tutorial, I will describe how to write a simple MapReduce program for Hadoop in the Python programming language. Motivation Even though the Hadoop framework is written in Java, programs for Hadoop need not to be coded in Java but can also be developed in other languages like Python or C++ (the latter since version 0.14.1). However, the documentation and the most prominent Python example o

    rawwell
    rawwell 2009/03/23
    "We will write a simple MapReduce program (see also Wikipedia) for Hadoop in Python but without using Jython to translate our code to Java jar files."
  • namedtupleの話 - Doge log

    python2.6から導入されたnamedtupleについてちょっくら書いておくか。 namedtupleって? namedtupleは名前の通り名前付きでアクセスできるtupleを返す。 >>> from collections import namedtuple >>> p = namedtuple('Point', 'x y') >>> p1 = p(11, 22) >>> p1[0] 11 >>> p1[1] 22 >>> p1.x 11 >>> p1.y 22 >>> p2 = p(x = 33, y = 44) >>> p2[0] 33 >>> p2[1] 44 >>> p2.x 33 >>> p2.y 44 >>> とまあこんな感じ。 namedtuple関数に名前とフィールドを渡すと名前付きでアクセスできるものを 作成するものを返す。 仕組み 実際にはnametuple関数

    namedtupleの話 - Doge log
  • selfの話 - Doge log

    メソッドのself (2)について少し書いてみる。 pythonの不満点でよく上がる定番の話は self地獄 インデント地獄 GIL外せよ! なんだけどそのうちのひとつであるselfの話。 まあ死ぬほど聞く話ではあるけど。 多分和訳より原文の方を読むと掴めるんじゃないかな。 decoratorがなぜ問題になるか?って部分だけど。 decoratorってある意味ブラックボックスでなんでもできちゃうので自動でboundさせるのむずくね?みたいな話なのかなと。 def deco(fun): def meth(self, arg): self.val = "decorator" return self.val return meth class C(object): @deco def meth(self, arg): self.val = arg return self.val c = C()

    selfの話 - Doge log
    rawwell
    rawwell 2009/03/22
    "selflessをmetaclassでやっちゃう話があったので紹介。自分のAttribute舐めてまわるというよくあるコード。 Meta-classes Made Easy selfless-pythonは死亡してる模様です。。。"
  • 2008-11-28

    mopemopeのおらっちゃ富山県民やちゃあ: selfの話 (http://d.hatena.ne.jp/mopemope/20081128/p2) デコレータの問題点を挙げて頂いた。ありがとうございます。 def deco(fun): def meth(arg): #このselfって?? self.val = "decorator" return self.val return meth 将来的にあるクラスのメソッドになりえるものを関数として定義しちゃうケースだとself何を指すのか? 関数でself???関数だよ? ということになっちゃうよね?って話。 結論から言うと、今のPythonでは無理ですね。恐らくPythonはレキシカルスコープしか存在しないと思うので上記のmeth内のselfはレキシカルに解決できないので、selfは未定義となりますね。 私の提案は、selfだけ例外的にダ

    2008-11-28
    rawwell
    rawwell 2009/03/22
    ""selfをダイナミックスコープにするというより、レシーバがメソッドを呼び出したタイミングだけselfにインスタンス(レシーバ)をバインドしてあげて、メソッドを抜けたらNone(未定義値)に戻してあげれば良いので、そういう
  • pyspa challenge01 に挑戦してみた - 牌語備忘録 -pygo

    問3解答あたり修正(途中経過のものをコピペしてた) 問いはこちらから引用 pyspa challenge 第1回 - 西尾泰和のはてなダイアリー ※まだ問題を解いていない人は上記リンクへ。下記に自己流の答えが書いてあるので注意! 最初に感想とか id:Voluntas師匠に「是非チャレンジしてみてくださいw」と言われて安請け合い。 うーん。問一、二と問三の難易度にかなりの差があると思われ。(問一、二 <<<<<<<< 問三) もしくは自分アホなのかと(ry こういうのやり始めるとムキになって仕事に支障が(ry これで問三の解答が間違っててももう知らんよ、もぉー(´・ω・`) 問一 print "".join(chr(ord(x) + 1) for x in *****) *****の部分に適当なコードを入れてpyspaと表示されるようにせよ 問一の解答 print "".join(chr(

    pyspa challenge01 に挑戦してみた - 牌語備忘録 -pygo
    rawwell
    rawwell 2009/03/22
    "実行して止まったら(error?)出力結果から"pyspa"を検索、なければindex_numで次を指定してまた実行。"
  • pyspa challenge 第1回やってみた - はてブロ@ama_ch

    トラバ送っていきなり答えのリンク張ってしまうのはどうかな? と思ったので、リンクは張らないでおきます>< と思っていたけど、解答編からトラバがきたのでリンク張ります! 問題 pyspa challenge 第1回 - 西尾泰和のはてなダイアリー http://d.hatena.ne.jp/nishiohirokazu/20081129/1227952375 *****の部分に適当なコードを入れてpyspaと表示されるようにせよ 第1問 print "".join(chr(ord(x) + 1) for x in *****) chr(ord(x) + 1)が"pyspa"になるxを探します! アルファベット1文字戻ればいいから、o,x,r,o,・・・"a"の前ってなんだっけ? 調べてみよう。 >>> ord("a") 97 >>> chr(96) '`' なるほど、"`"か! というわけで

    pyspa challenge 第1回やってみた - はてブロ@ama_ch
    rawwell
    rawwell 2009/03/22
    "コマンド"python -m hoge"の出力が、インデックス67が"p",12が"y"となるhogeを探せば答えになりそうです。 -mオプションなんて使ったことないから、どうやって探せばいいんだろう>< ・・・よし、総当たりで探そう!"
  • メソッドのself (2) - プログラミング日記

    メソッドのselfに関して再考してみる。selfをなくすためにPythonに互換性を持たせる必要があるということは、ここでは無視する。 和訳 : なぜPythonのメソッド引数に明示的にselfと書くのか (http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay) メソッドのself (http://d.hatena.ne.jp/morchin/20080923#p1) Self in the Argument List: Redundant is not Explicit (http://www.artima.com/weblogs/viewpost.jsp?thread=239003) Guidoのself必要という理由は以下の3つ。 foo.meth(arg) == C.meth(foo, arg)が成

    メソッドのself (2) - プログラミング日記
    rawwell
    rawwell 2009/03/22
    "インスタンス変数にアクセスする時に、selfを明示的に指定する必要があるというの良いルールだと思う。foo.methの時に第一引数がカリー化されるのであれば、def meth(arg)をdef meth(self, arg)のシンタックスシュガーにするという
  • PythonDecorators - Python Wiki

    About this page This page largely documents the history of the process of adding decorators to Python. If you're just interested in what decorators or the '@' symbol mean in Python, see the Wikipedia page http://en.wikipedia.org/wiki/Python_syntax_and_semantics#Decorators or PEP 318. What is a Decorator A decorator is the name used for a software design pattern. Decorators dynamically alter the fu

  • Decorators I: Introduction to Python Decorators

    Computing Thoughts Decorators I: Introduction to Python Decorators by Bruce Eckel October 18, 2008 Summary This amazing feature appeared in the language almost apologetically and with concern that it might not be that useful. I predict that in time it will be seen as one of the more powerful features in the language. The problem is that all the introductions to decorators that I have seen have bee

  • Siafoo

    After 15 years of operation we have made the decision to shut-down the Siafoo website and focus our efforts on our new venture. You can find most of the siafoo content on the Wayback machine.

    rawwell
    rawwell 2009/03/22
    "Decorators modify functions. Beginning with the basics, learn how to use decorators in a variety of ways. Execute code when a function is parsed or called. Conditionally call functions and transform inputs and outputs. Write customizable decorators that accept arbitrary arguments. And, if necessary
  • [anagolf] - ElEctrOstAtIc dIAry (静電気日記) is not blog

  • 西尾泰和のブログ: モナドを作るver. 0.1

    IOモナドは難しそうだったのでとりあえずMaybeモナドからはじめる。 >>> def Maybe(typ): class Foo(object): @classmethod def return_(_, x): return Just(x) @classmethod def bind(_, m, f): if isinstance(m, Nothing): return Nothing() elif isinstance(m, Just): return f(m.value) class Just(object): def __init__(self, x): assert isinstance(x, typ) self.value = x class Nothing(object): pass Foo.__name__ = "Maybe_%s" % typ.__name__ retur

    rawwell
    rawwell 2009/03/21
    "IOモナドは難しそうだったのでとりあえずMaybeモナドからはじめる。"
  • メタプログラミング:逆襲のニート

    ニートというのはダメな人じゃない。 ノーワークおじさんなのだ。 人間やればできる。 誰でも可能性の宝庫なのだ。 LISP、C++RubyPythonなどで、メタプログラミングを勉強できるみたいだ。 メタプログラミング 代表的なメタプログラミングの例はLISPのマクロである。 メタプログラミングの他の例としてはC++における「テンプレートメタプログラミング」などが挙げられる。 Rubyによるメタプログラミング演習 メタプログラミング ― つまり、"コードを生成するコード"を書くこと Pythonでのメタクラス・プログラミング ほとんどの読者は、オブジェクト指向プログラミングの継承、カプセル化、多態性といった概念については、すでによくご存じのことと思います。 といっても、いろいろな親を祖先とする何かのクラスからオブジェクトを生成する 操作は、通常、「単にそういう」ものとして捉えられています

    rawwell
    rawwell 2009/03/21
    "クラスがインスタンスの生成方法や振舞いを規定するのと同様に、 メタクラスはクラスの生成方法や振舞いを規定する。"