コード例 #1
0
        public PyVariable NewInstance(PyVariableFlags flags = PyVariableFlags.Object, List <object> arguments = null)
        {
            PyVariable instance = PyVariableManager.NewVariable(flags: flags);

            instance.CallAssign(new PythonFunction(this.ClassName), arguments);
            return(instance);
        }
コード例 #2
0
 /// <summary>
 /// Allocates a new variable
 /// </summary>
 /// <param name="variableName">Name of the variable to add</param>
 /// <param name="isObject">Indicates the variable will store non-serializable data (like class instances)</param>
 /// <returns>The newly added variable, or null if the variable already exists</returns>
 public static PyVariable NewVariable(string variableName = null, PyVariableFlags flags = PyVariableFlags.Normal)
 {
     if (variableName == null)
     {
         variableName = "_var" + _variables.Count;
     }
     if (!_variables.ContainsKey(variableName))
     {
         PyVariable variable = new PyVariable(variableName, flags: flags);
         _variables.Add(variableName, new WeakReference <PyVariable>(variable));
         return(variable);
     }
     return(null);
 }
コード例 #3
0
ファイル: PyVariable.cs プロジェクト: devna13/KodiSharp
        /// <summary>
        /// Represents a Python variable
        /// </summary>
        /// <param name="varName">Name of the variable</param>
        /// <param name="evalCode">Code that will be evaluated as the variable value/content</param>
        /// <param name="isObject">Indicates the variable will store non-serializable data</param>
        public PyVariable(
            string varName, string evalCode = null,
            PyVariableFlags flags           = PyVariableFlags.Normal, bool keepValue = false
            )
        {
            this.Name = varName;

            if (flags.HasFlag(PyVariableFlags.Monitor) || flags.HasFlag(PyVariableFlags.Player))
            {
                flags |= PyVariableFlags.Object;
            }

            this.Flags = flags;

            if (evalCode == null && !keepValue)
            {
                evalCode = "''";
            }

            if (!keepValue)
            {
                this.Value = evalCode;
            }
        }