metaclass

    9

    1答えて

    私はGroovyでメタクラスプログラミングをしています。しかし、突然、私はちょうど働いて得ることができなかった小さな問題に直面していた...ここで は簡単なスクリプトです: // define simple closure def printValueClosure = { println "The value is: '$delegate'" } String.metaClass.pr

    6

    3答えて

    は、私はこのようなPythonでクラスをハッキングしてきました。私にはかなりきれいに見えます def hack(f,aClass) : class MyClass(aClass) : def f(self) : f() return MyClass A = hack(afunc,A) を。それはクラスAを取ります。新しいクラスを作成してfを呼び出し

    4

    2答えて

    私は複数のサブクラスを派生させた基本クラスを持っています。 各サブクラスはクラス定数を定義しており、それらに対して一定の制限を適用したいと考えています。たとえば : class Base(object): # define these in your sub-class, and make sure (NOM % DENOM == 0) NOMINATOR = None

    0

    2答えて

    私はいくつかのコードをPythonに用意しています。クラスはたくさんあり、それぞれのクラスには属性_internal_attributeがあります。これらの属性の元のクラスへのマッピングを生成できるようにしたいと思います。基本的に私はこれを行うことができるようにしたいと思います: class A(object): _internal_attribute = 'A attribute'

    3

    2答えて

    私はいくつかのシンプルなGroovyクラスを作成しています。 class Person { int age String name } これらは、オブジェクトのプロパティを引き出すためにリフレクションに依存するJavaメソッドで使用されています。年齢と名前。問題は、metaClassもプロパティとして表示されていることです。このプロパティを無視するようにJavaメソッドを

    9

    1答えて

    ここはPythonセッションです。 (メタクラスが継承されるよう?) >>> class Z(type): def __new__(cls, name, bases, attrs): print cls print name return type(name, bases, attrs) ... >>> class Y(object):

    2

    1答えて

    私は既存のDjangoライブラリを使用しています。抽象化したいクラスを作成しています。 問題のクラスがBaseFooであるとします。 現在、実装には基本クラスBaseFooがあります。 延長するクラスがBaseFooになるたびに、メタクラスがそのクラスをクラスのリストに追加します。私が何か書くことができるようにしたいと思い if name not in ('BaseFoo',): cl

    0

    1答えて

    私はGroovyとGrailsに比較的新しく、余裕を持って試してみたいと思います。私はgrails run-appを使って細かく実行できる小さなテストGrailsアプリケーションを持っていますが、grails run-warはエラーになります。 grails-app/conf/BootStrip.init方法で 、私はDefaultGrailsControllerClassとDefaultGrai

    2

    5答えて

    問題:別のメソッド_executeを呼び出すテンプレートメソッドexecuteを含むクラスがあります。サブクラスは、特定の機能を実装するために_executeを上書きすることになっています。この機能は、文書番号_executeに文書化する必要があります。 上級ユーザーは、独自のサブクラスを作成してライブラリを拡張できます。しかし、そのようなサブクラスを扱う別のユーザーはexecuteしか使用しない

    0

    1答えて

    groovyスクリプトで定義されたクラスのメソッドを動的に変更して追加しようとしましたが、.metaClassで直接クラス名を使用すると、 。私はGroovyClassLoaderを使ってクラスをロードしていません(これは私がする必要があります!)。ファイルを1つ 'MyTest.groovy' 私は class MyTest { public void setUp() {