标签: instance

静态实例,析构函数从不调用

请参阅下面的代码.析构函数永远不会被调用.任何人都知道为什么以及如何纠正这个问题?

public partial class Form1 : Form
{
    private Goo goo;

    public Form1()
    {
        InitializeComponent();

        goo = Goo.GetInstance();         
    }
}

public class Goo
{
    private foo f = new foo();
    private static Goo goo;
    private Goo()
    {}

    public static Goo GetInstance()
    {
        if(goo!=null)
        {
            goo = new Goo();
        }
        return goo;
    }

    ~Goo()
    {

    }
}

class foo
{
    ~foo()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

c# static destructor instance

2
推荐指数
1
解决办法
288
查看次数

静态与实例共享使用方法

这是我想要确定的......

我有一个实用程序类来将行附加到文本文件.这必须由许多其他类使用,例如常见的日志文件.

在我的第一个实现中,我让所有想要使用它的类成为无引用的实例,例如

new Logger(logline,logname);

构造函数创建一个PrintWriter,追加该行并关闭该文件.

这似乎很浪费,因为每个附加的行都会生成一个新实例.

另一种方法是在这个公共类中使用一个名为"writeln"的静态方法,因为我已经理解静态方法和数据一遍又一遍地重复使用相同的内存......但是

这个静态方法创建了一个PrintWriter 实现其工作的实例,所以这是否意味着PrintWriter为每一行创建一个新实例,比如#1?

无论如何,(我对Java相对较新)是否有一种众所周知的,批准的方式,或者我们只是创造了,让垃圾收集器在我们之后清理?

谢谢

java methods static instance

2
推荐指数
1
解决办法
2535
查看次数

flex接口问题

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Label id="lb" text="check"/>
    <mx:Script>
        <![CDATA[
            import mx.managers.BrowserManager;
            import mx.managers.IBrowserManager;
            public var brm:IBrowserManager = BrowserManager.getInstance();
        ]]>
    </mx:Script>
</mx:WindowedApplication>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,IBrowserManager是一个接口,BrowserManager.getInstance()返回一个IBrowserManager类型的对象.但是,根据我所知的接口,无法创建接口的实例?那么,为什么我可以在这里创建一个接口实例?

apache-flex actionscript interface instance

2
推荐指数
1
解决办法
2960
查看次数

创建Haskell实例声明

在这里完成了对Haskell的菜鸟,可能是一个更加低调的问题.我正在尝试让ghci输出工作,并且我坚持实例声明.我如何声明"(Show(Stack - > Stack))"的实例给出:

data Cmd = LD Int
         | ADD
         | MULT
         | DUP
         deriving Show

type Prog = [Cmd]

type Stack = [Int]

type D = Stack -> Stack
Run Code Online (Sandbox Code Playgroud)

我一直试图创建一个声明,如:

instance Show D where show = Stack
Run Code Online (Sandbox Code Playgroud)

但我所有的尝试都导致了非法的实例声明.任何帮助和/或参考非常感谢!

haskell declaration instance show

2
推荐指数
1
解决办法
2439
查看次数

Django使用数据库中的字段预填充表单

我有一个隐私表,其中我选择了当访问用户个人资料时应隐藏哪些应用程序。该表单包含多个复选框,用户检查他想隐藏的内容。我想要的是,当用户访问此表单时,该表单将成为已保存的隐私表单的一个实例(如果存在)。我的意思是,如果我已经选中了隐藏应用程序1,则当我再次访问该表单时,将选中相应的复选框。

我的代码:

def save_privacy(request):
   if request.method == 'POST':
        try:
           u = Privacy.objects.get(user_privacy = request.user)
           form = PrivacyForm(request.POST, instance=u )  
        except ObjectDoesNotExist:
             form = PrivacyForm(request.POST, request.FILES)
        if form.is_valid():           

           new_obj = form.save(commit=False)
           new_obj.user_privacy = request.user

           new_obj.save()
           return HttpResponseRedirect('/accounts/private_profile/')    
   else:
           form = PrivacyForm()     
   return render_to_response('privacy/set_privacy.html', {
           'form': form,
           }, 
          context_instance=RequestContext(request)) 
Run Code Online (Sandbox Code Playgroud)

和我的表格:

class PrivacyForm(ModelForm):
    class Meta:
          model = Privacy
          fields = ['restrict_cv','restrict_blog','friends_of_friends','restrict_followers','restrict_following']
Run Code Online (Sandbox Code Playgroud)

forms django instance populate

2
推荐指数
1
解决办法
3318
查看次数

python中的自定义类:是否可以使用实例调用方法?

我正在处理来自应用程序的数据,该应用程序在如何保持时间方面有一些怪癖.一个更简单的怪癖是它使用"一年中的一天"(1月1日是1,2月1日是32等)而不是月份+日.所以我想创建自己的日期类,它继承自默认的datetime类,并且有一些自定义方法.我白天打电话给我.除了输出到我的奇怪格式的方法之外,我还需要将奇怪的格式输入到白天的方法.就像方法.fromordinal()可以从datetime调用一样,我希望有一个方法.fromdayofyear()可以从白天调用.到目前为止我得到了:

import datetime

class daytime(datetime.datetime):
    @property
    def dayofyear(self):
        return (self.date - datetime.date(self.year,1,1)).days + 1
    def fromdayofyear(year,dayofyear):
        return datetime(year,1,1)+datetime.timedelta(dayofyear-1)
Run Code Online (Sandbox Code Playgroud)

问题是,由于fromdayofyear是一个类,它需要一个白天实例来执行任何方法.

>>> from utils import daytime
>>> day = daytime.fromdayofyear(2010,32)          #should give a datetime, Feburary first
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method from_datetime() must be called with DayTime instance as first argument (got str instance instead)
>>>
Run Code Online (Sandbox Code Playgroud)

我可以很容易地编写一系列函数来做到这一点,但是这使得开始创建自定义类失败了.我意识到我可能不应该在这里使用课程.有人能指出我正确的方向吗?

编辑:

这就是我所确定的:

import datetime

class daytime(datetime.datetime):
    @property
    def dayofyear(self):
        return (self.date - datetime.date(self.year,1,1)).days + 1
    @classmethod …
Run Code Online (Sandbox Code Playgroud)

python datetime class instance

2
推荐指数
1
解决办法
645
查看次数

scala:将List [Tuple3 [A,B,C]]转换为Foo的最短路径(A,B,List [C])

我有一个List [Tuple3 [User,Order,OrderItem]]的查询结果

要创建Invoice的案例类实例,其伴随对象将采用User,Order和List [OrderItem].

目前我正在攻击它:

def getInvoice(orderNum: String): Option[Invoice] = {

  val res = 
    dao.byOrderNum(orderNum) // List[ Tuple3[User, OrderEntry, OrderItem] ]

  if(!res.isEmpty) {
    val(user, order) = (res(0)._1, res(0)._2)
    val items = res map { case(_, _, oi: OrderItem) => oi }
    Some( Invoices.apply(user, order, items) ) // gets an Invoice
  }
  else None
}
Run Code Online (Sandbox Code Playgroud)

我可以将查询结果List[ Option[Tuple3[User, Order, OrderItem]] ]设为a ,这样可以让我对结果进行flatMap,但不确定是什么让我购买.

无论如何,必须是一个更简洁/优雅的解决方案

谢谢

mapping scala list instance one-to-many

2
推荐指数
1
解决办法
208
查看次数

UnboundLocalError:赋值前引用的局部变量'player'

当我发现这个错误时,我试图做一些代码.我首先player用namea param1和a 定义类param2.当我运行该game函数并尝试在其中创建player 类的实例时,我得到UnboundLocalError错误.这是我的代码:

class player(object):

    def __init__ (self, name, param1 = None, param2 = None):

        self.param1 = param1
        self.param2 = param2
        self.name = name

def game(n = int(raw_input('How many players? '))):

    playerList = [] 

    for x in range(n):
        playerList.append(player(raw_input('Player %i: ' %(x+1))))

    for player in playerList:
        player.param1 = int(raw_input('%s, how many do you predict? ' %(player.name.upper())))
Run Code Online (Sandbox Code Playgroud)

所以基本上,我的问题是python不允许我在函数内创建类的实例.我搜索了很多,但我还没找到我要搜索的内容.提前致谢!

python variables instance

2
推荐指数
1
解决办法
3027
查看次数

我是否必须在析构函数中执行任何操作以释放非指针成员变量?

如果我有类似的东西

class Foo { ... }

class UsesFoo {
private:
    Foo foo;
public:
    UsesFoo() : foo(1, 2, 3) { }
}
Run Code Online (Sandbox Code Playgroud)

然后据我所知,当我构造一个UsesFoo(be it UsesFoo *myMan = new UsesFoo();或UsesFoo myMan;)时,它Foo就像通过调用一样创建一个对象Foo(1, 2, 3).当UsesFoo被摧毁时(无论是通过delete myMan;还是超出范围),Foo内部也将被破坏.

如果我提供以下析构函数,Foo仍然会被破坏吗?

~UsesFoo() { }
Run Code Online (Sandbox Code Playgroud)

如果没有,那么我该怎么办才能破坏Foo?换句话说,作为类实例的非指针成员变量如何被破坏的语义是什么?

c++ destructor class member instance

2
推荐指数
1
解决办法
95
查看次数

获取当前MainWindow实例的WPF最佳实践?

我得到一个警告,这可能是一个主观问题,可能会被关闭,但无论如何我都会问.

我基本上试图从一个从MainWindow中加载的UserControl访问WPF应用程序中的MainWindow上的按钮.

我正在从UserControl的代码后面这样访问它:

((MainWindow)Application.Current.MainWindow).btnNext
Run Code Online (Sandbox Code Playgroud)

但它确实看起来很混乱,从我读过的内容来看,它并不是最佳实践.任何人都能够提供一个答案,构成从MainWindow的当前实例访问控件/属性的最佳实践 - 或者任何其他活动的窗口/视图?

wpf instance

2
推荐指数
1
解决办法
7074
查看次数