Browse Source

Merge pull request #237 from arnavdas88/master

added hasattr() and getattr()
tags/v0.9
Haiping GitHub 6 years ago
parent
commit
c8b78ffa12
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 0 deletions
  1. +28
    -0
      src/TensorFlowNET.Core/Python.cs

+ 28
- 0
src/TensorFlowNET.Core/Python.cs View File

@@ -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"; });
}


} }




Loading…
Cancel
Save