|
|
@@ -153,6 +153,34 @@ namespace Tensorflow |
|
|
} |
|
|
} |
|
|
return dictionary; |
|
|
return dictionary; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static bool hasattr(object obj, string key) |
|
|
|
|
|
{ |
|
|
|
|
|
var __type__ = (obj).GetType(); |
|
|
|
|
|
|
|
|
|
|
|
var __member__ = __type__.GetMembers(); |
|
|
|
|
|
var __memberobject__ = __type__.GetMember(key); |
|
|
|
|
|
return (__memberobject__.Length > 0) ? true : false; |
|
|
|
|
|
} |
|
|
|
|
|
public delegate object __object__(params object[] args); |
|
|
|
|
|
public static __object__ getattr(object obj, string key) |
|
|
|
|
|
{ |
|
|
|
|
|
var __dyn_obj__ = obj.GetType().GetMember(key); |
|
|
|
|
|
if (__dyn_obj__.Length == 0) |
|
|
|
|
|
throw new Exception("The object \"" + nameof(obj) + "\" doesn't have a defination \"" + key + "\""); |
|
|
|
|
|
var __type__ = __dyn_obj__[0]; |
|
|
|
|
|
if (__type__.MemberType == System.Reflection.MemberTypes.Method) |
|
|
|
|
|
{ |
|
|
|
|
|
var __method__ = obj.GetType().GetMethod(key); |
|
|
|
|
|
return (__object__)((object[] args) => __method__.Invoke(obj, args)); |
|
|
|
|
|
} |
|
|
|
|
|
else if (__type__.MemberType == System.Reflection.MemberTypes.Field) |
|
|
|
|
|
{ |
|
|
|
|
|
var __field__ = (object)obj.GetType().GetField(key).GetValue(obj); |
|
|
|
|
|
return (__object__)((object[] args) => { return __field__; }); |
|
|
|
|
|
} |
|
|
|
|
|
return (__object__)((object[] args) => { return "NaN"; }); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|