タグ

ブックマーク / tomapd.hatenadiary.org (2)

  • Python のメソッドをクロージャとして使う - tomapd == 22%

    Python においてメソッドはユニークな性質を持っており、bound されているか unbound か、明確な違いがある。bound / unbound とは、そのメソッドが特定のインスタンスに属しているか、いないかという言い方が出来ると思う。 class Person(object): def __init__(self, name, age): self.__name = name self.__age = age def get_name(self): return self.__name def get_age(self): return self.__age単純なクラスを定義してみた。このクラスのメソッドを調べてみると、 >>> Person.get_age <unbound method Person.get_age>こちらは unbound となっているが、 >>> p =

    Python のメソッドをクロージャとして使う - tomapd == 22%
  • Gauche の拡張ライブラリでクラスを定義する - tomapd == 22%

    Gauche の拡張ライブラリで、自分でクラスを定義する方法、というよりメモとしてのテンプレート。正しい手順か不明だけど、とりあえず動く。 安直だけど、"clos" という名前の拡張ライブラリを書くとして、Scheme で書くと次のような定義になるようにする。 (define-class <person> () ((name :init-value "Anonymous") (age :init-value 20)))拡張ライブラリのヘッダファイル clos.h の宣言。 typedef struct ScmPersonRec { SCM_HEADER; ScmObj name; int age; } ScmPerson; SCM_CLASS_DECL(Scm_PersonClass); #define SCM_CLASS_PERSON (&Scm_PersonClass) #define

    Gauche の拡張ライブラリでクラスを定義する - tomapd == 22%
  • 1