标签: instance

在Python中的__init __(self)中寻址实例名称字符串

我正在做这样的事情:

class Class(object):
    def __init__(self):
        self.var=#new instance name string#   
Run Code Online (Sandbox Code Playgroud)

如何使我的实例的__ init __方法使用实例名称字符串'c'?以防万一:

c=Class()
Run Code Online (Sandbox Code Playgroud)

我希望c.var等于'c'.

感谢您的回复,我正在实现持久性,而Class是持久对象的类.我希望__ init __在以下情况下向数据库添加条目:

c=Class()
Run Code Online (Sandbox Code Playgroud)

然后,假设:

del c
Run Code Online (Sandbox Code Playgroud)

稍后的:

c=Class()
Run Code Online (Sandbox Code Playgroud)

如果已存在条目"c",则sholuld使用数据库中的数据创建实例,否则创建新条目.


感谢您的回复,我正在实现持久性,而Class是持久对象的类.我希望__ init __在以下情况下向数据库添加条目:

c=Class()
Run Code Online (Sandbox Code Playgroud)

然后,假设:

del c
Run Code Online (Sandbox Code Playgroud)

稍后的:

c=Class()
Run Code Online (Sandbox Code Playgroud)

如果已存在条目"c",则sholuld使用数据库中的数据创建实例,否则创建新条目.

python instantiation instance

4
推荐指数
1
解决办法
3079
查看次数

如何在Django多对多关系中删除中间模型的实例?

根据一个例子,我有三个模型:

class User(models.Model):
    name = models.CharField(max_length=128)

class Group(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(User, through='Membership')

class Membership(models.Model):
    person = models.ForeignKey(User)
    group = models.ForeignKey(Group)
    date_joined = models.DateField()
Run Code Online (Sandbox Code Playgroud)

添加成员有效.但是,如何删除单个成员资格实例(用户退出组),而不删除用户和组?

当我尝试删除它时:

    u = User(request.user)
    g = Group.objects.get(id=group_id, membership__user=u)
    m = Membership(user=request.user, group=g)
    m.delete()
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

/ groups/quit/1 /的AssertionError

无法删除成员资格对象,因为其id属性设置为None.

django many-to-many instance django-models

4
推荐指数
1
解决办法
4742
查看次数

Ruby on Rails:在视图中使用帮助程序初始化实例变量

我遇到了某种类型的范围问题,它阻止实例变量被视图调用的助手正确初始化.

#sample_controller.rb
class SampleController < ApplicationController
  def test
  end
end

#application_controller.rb
helper_method :display 
def display
  if not defined? @display
    return @display = "a"
  else
    return @display += "a"
  end
end

#test.html.erb
<%= display %>
<%= display %>
<%= @display %>
<%= @display.reverse %>
Run Code Online (Sandbox Code Playgroud)

当显示样品/测试时,它会在"评估nil.reverse"时出现错误.这是令人惊讶的,因为显示的前两个调用应该初始化@display我会想到.如果删除<%= @ display.reverse%>,则输出为"a aa",表示辅助方法正在设置@display实例变量,但视图中无法访问它.

如果控制器被修改成为(使用原始视图代码):

class SampleController < ApplicationController
  def test
    display
  end
end
Run Code Online (Sandbox Code Playgroud)

输出变成"aa aaa a a".如果我在控制器中进行2次调用,我会得到"aaa aaaa aa aa".因此,似乎只有在控制器中进行的调用才会修改SampleController实例变量,而视图中的调用将修改视图无法访问的ApplicationController的实例变量.

这是Rails中的错误还是我的误解,这是出于某种原因预期的功能?

我遇到这个bug的上下文是试图创建一个logged_in?ApplicationController方法,在第一次调用时设置@user变量,如果用户登录则返回true或false.除非在尝试在视图中使用它之前在控制器中添加了不必要的调用,否则这将无效.

variables ruby-on-rails view helper instance

4
推荐指数
1
解决办法
5401
查看次数

为Clojure中的对象的特定实例创建代理

我正在尝试创建一个代理对象,该对象使用闭包(let / proxy)为对象的某些方法添加一些功能,但是我很乐意从原始对象重写所有方法,我得到一个UnsupportedOpretationException,这里是一个例子:真实的对象

(def realcon (java.sql.DriverManager/getConnection "jdbc:h2:tcp://localhost:9092/test"))


(def con 
    (let [msg "FG>"
          xcon rcon]
        (proxy [java.sql.Connection] []
            (createStatement []
                (println msg) ;; access to closure context !
                (.createStatement xcon)))))

(def stmt (.createStatement con))
;;output FG>

(def rs (.executeQuery stmt "select count(*) from serie_sat"))
Run Code Online (Sandbox Code Playgroud)

如果我从java.sql.Connection调用任何其他方法,则会得到UnsupportedOperationException,我可以手工代理所有方法,但是可能存在更好的方法!

谢谢

proxy clojure object instance

4
推荐指数
2
解决办法
814
查看次数

Java,两个对象,object1 = object2 = class/type ...不明白

我有两个实例变量,head和tail.在代码中有一行:

head = tail = new Node<E>();
Run Code Online (Sandbox Code Playgroud)

这是否意味着Node类有两个实例,head和tail?我在这里很困惑.

java class object instance

4
推荐指数
1
解决办法
2012
查看次数

Python:在多个模块中使用相同的类实例

我有一个名为EventManager的类,我在每个模块中调用这个类.我想到在主文件中创建一个EventManager的实例,并在每个模块中使用该实例.我的问题是:

  • 这是我的正确方法吗?请注意,我不想创建EventManager的多个实例,因为它在每次调用时都会解析文件,并且该文件可能包含大量数据.
  • 考虑到我想减少内存使用量,最好的方法是什么?

python oop class instance

4
推荐指数
1
解决办法
1829
查看次数

从数组副本中删除项目而不从原始数组中删除它

如何从数组副本中删除对象而不将其从原始数据中删除?

我有一个全局变量:

    var userTrickList = [];
Run Code Online (Sandbox Code Playgroud)

在函数内部,我复制了该全局数组:

    var tempUserTrickList = userTrickList;
Run Code Online (Sandbox Code Playgroud)

然后我使用removeItem我创建的函数来删除某个对象.

    removeItem(considerTrick.IDName, tempUserTrickList);


    function removeItem(item, list) {
        //takes a string as 'item', finds in the array as 'list', 
        //then removes it from the list.
        for(var i = 0; i < list.length; i++)
        {
            if(item === list[i])
            {
                list.splice(i,1);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,这个功能也将它从中删除userTrickList了.

有任何想法吗?这绝对是一个问题"removeItem(considerTrick.IDName, tempUserTrickList);",但我想不出解决方案.

javascript arrays jquery copy instance

4
推荐指数
1
解决办法
5626
查看次数

Android - 将数据传递给singleInstance活动

我有一个在清单中定义的活动:

 android:launchMode="singleInstance"
Run Code Online (Sandbox Code Playgroud)

现在我想从一个不知道它存在的不同活动(没有引用现有实例)并同时传入一个变量转移到该活动.我曾经这样做(在我将其定义为singleInstance之前):

Intent intent = new Intent(this, receivingactivity.class);

intent.putExtra("somekey", somevalue);

startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但现在这已不再适用了.我在onresume中接收了以下行的接收活动:

String somevalue = getIntent().getStringExtra("somekey");
Run Code Online (Sandbox Code Playgroud)

它返回null.如何将值传递给现有的接收活动(该活动始终处于活动状态且永远不会达到ondestroy但最大值会延迟到暂停)?

android instance android-activity

4
推荐指数
1
解决办法
1070
查看次数

Haskell,类中的函数声明

我试图为多态类树创建一些实例,但我不明白,

看,我的代码是:

data BTree a = BLeaf a | BBranch a (BTree a) (BTree a) deriving(Show)
data TTree a = TLeaf a | TBranch a (TTree a) (TTree a) (TTree a) deriving(Show)

class Tree a where

    getName :: a -> a -- How should i declare this function?

instance Tree (BTree a) where

    getName (BLeaf name) = name
    getName (BBranch name lhs rhs) = name

instance Tree (TTree a) where

    getName (TLeaf name) = name
    getName (TBranch name lhs mhs …
Run Code Online (Sandbox Code Playgroud)

polymorphism haskell class instance

4
推荐指数
1
解决办法
128
查看次数

快速创建类的新实例

假设有以下情况:

必须从大量的文件夹结构中检索日志文件,并将它们添加到List中.

哪种方案从机器中获取的资源更少?

LogFile file;
foreach (string filepath in folderfiles) 
{
   file = new LogFile { path = filepath, 
                        machine = machineName,
                        user = userName }; 
   files.Add(file);
}
Run Code Online (Sandbox Code Playgroud)

要么

foreach (string filepath in folderfiles) 
{
   LogFile logFile = new Logfile { path = filepath, 
                                   machine = machineName,
                                   user = userName }; 
   files.Add(file);
}
Run Code Online (Sandbox Code Playgroud)

它会有什么不同吗?

c# resources object instance

4
推荐指数
1
解决办法
120
查看次数