问题列表 - 第11687页

嵌套在函数和属性查找中的类

以下工作正常,即它没有给出任何错误:

def foo(arg):
    class Nested(object):
        x = arg

foo('hello')
Run Code Online (Sandbox Code Playgroud)

但以下引发异常:

def foo(arg):
    class Nested(object):
        arg = arg # note that names are the same

foo('hello')
Run Code Online (Sandbox Code Playgroud)

追溯:

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    foo('hello')
  File "test.py", line 3, in foo
    class Nested(object):
  File "test.py", line 4, in Nested
    arg = arg
NameError: name 'arg' is not defined
Run Code Online (Sandbox Code Playgroud)

我无法理解这种行为的原因.有人可以解释一下吗?

python nested class

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

.net异步套接字超时检查线程安全

http://msdn.microsoft.com/en-us/library/system.net.sockets.socketasynceventargs.aspx

从上面的msdn示例开始,我正在尝试编写一个超时检查,它将关闭非活动的客户端套接字并释放资源.

这就是我想出的.但我不确定它是否完全是线程安全的,如果有更好的方法可以做到这一点.我希望有人可以给出一些建议.

void IO_Completed(object sender, SocketAsyncEventArgs e)
{
    if (e.SocketError != SocketError.Success)
    {
        CloseClientSocket(e);
        return;
    }

    if (1 < Interlocked.CompareExchange(ref token.Status, 1, 0))
        return;

    switch (e.LastOperation)
    {
        case SocketAsyncOperation.Receive:
            ProcessReceive(e);
            break;
        ...
    }

    token.LastActive = Environment.TickCount;
    Interlocked.CompareExchange(ref token.Status, 0, 1);
}

void ProcessReceive(SocketAsyncEventArgs e)
{
    AsyncUserToken token = (AsyncUserToken)e.UserToken;
    if (e.BytesTransferred > 0)
        if (!token.Socket.SendAsync(e))
            ProcessSend(e);
    else
        CloseClientSocket(e);
}

void ProcessSend(SocketAsyncEventArgs e)
{
    AsyncUserToken token = (AsyncUserToken)e.UserToken;
    if (!token.Socket.ReceiveAsync(e))
        ProcessReceive(e);
}
Run Code Online (Sandbox Code Playgroud)

TimeoutCheck将每20秒执行一次.allReadWriteArgs是一个包含所有SocketAsyncEventArgs的数组.关闭套接字后,将使用SocketError.OperationAborted调用IO_Completed.

void TimeoutCheck(object state)
{
    AsyncUserToken token;
    int …
Run Code Online (Sandbox Code Playgroud)

c# sockets multithreading asynchronous timeout

5
推荐指数
1
解决办法
6305
查看次数

Perl和Moose:我应该使用什么基于Moose的包作为MooseX :: Method的替代品

令我沮丧的是,我注意到MooseX::Method不再维护和弃用.

该软件包MooseX-Method-Signatures被公布为替代品,但其文档说:这是ALPHA软件.使用风险由您自己承担.功能可能会改变.

<whine>我该怎么办</ whine>

perl moose

3
推荐指数
1
解决办法
257
查看次数

Cocoa app - 安全问题

我有一个问题,一个很好的方法来保护我的可可应用程序免受盗版.我知道这是不可能的!

所以,在我的应用程序中,我有一个isRegistered()方法,每次用户启动应用程序时都会运行.这是从applicationDidFinishLaunching:App委托调用的.因此,如果此方法返回true,则应用程序继续执行代码,否则将显示一条警告,指出该应用程序未注册且有xx天购买许可证.

这是一个好方法吗?因为,我没有这方面的经验.

预先感谢您的帮助!


解决了

首先,感谢大家!我认为同样的事情:任何版权保护都可以阻止盗版.我只想解决这个小错误,即使我知道有人会再次破解我的应用程序.然而,这是真的 - 最好的办法是改进应用程序,而不是浪费时间尝试提高盗版保护效率.

cocoa delegates protection piracy objective-c

3
推荐指数
1
解决办法
866
查看次数

SQL Server差异工具

在一个团队中工作,人们很容易修改开发SQL Server表并忘记它,或准备部署更改并等待部署.这使我们的dev和live表不一致,导致SPROC被推送时出现问题.

是否有工具可以输入SPROC名称并检查dev和live DB中引用的所有表格,并通知任何差异?

sql-server diff

8
推荐指数
1
解决办法
1万
查看次数

C#:封装例如集合

我想知道哪一个被认为是最干净或最好用的,为什么.

其中一个公开了一个乘客列表,让用户添加和删除等.另一个隐藏列表,只让用户枚举它们并使用特殊方法添加.

例1

class Bus
{
    public IEnumerable<Person> Passengers { get { return passengers; } }
    private List<Passengers> passengers;

    public Bus()
    {
        passengers = new List<Passenger>();
    }

    public void AddPassenger(Passenger passenger)
    {
        passengers.Add(passenger);
    }
}

var bus = new Bus1();
bus.AddPassenger(new Passenger());
foreach(var passenger in bus.Passengers)
    Console.WriteLine(passenger);
Run Code Online (Sandbox Code Playgroud)

例2

class Bus
{
    public List<Person> Passengers { get; private set; }

    public Bus()
    {
        Passengers = new List<Passenger>();
    }
}

var bus = new Bus();
bus.Passengers.Add(new Passenger());
foreach(var passenger in bus.Passengers)
    Console.WriteLine(passenger); …
Run Code Online (Sandbox Code Playgroud)

c# encapsulation class

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

如果没有安装Python,mercurial如何工作?

我的Windows 7机器上安装了Mercurial 1.3.我没有安装python,但Mercurial似乎没问题.

它是如何工作的?

此外,是否可以强制Mercurial在IronPython上运行并且它是否兼容?

谢谢.

python mercurial ironpython

8
推荐指数
3
解决办法
1604
查看次数

如何在C#中进行单元测试中的MapPath

我想在单元测试中加载外部XML文件,以测试该XML上的一些处理代码.如何获取文件的路径?

通常在Web应用程序中我会这样做:

XDocument.Load(Server.MapPath("/myFile.xml"));
Run Code Online (Sandbox Code Playgroud)

但显然在我的单元测试中我没有引用Server或HttpContext,那么如何映射路径以便我不必指定完整路径?

更新:

我只想说明我实际测试的代码是针对XML解析器类的,类似于:

public static class CustomerXmlParser {
  public static Customer ParseXml(XDocument xdoc) {
    //...
  }
}
Run Code Online (Sandbox Code Playgroud)

所以为了测试这个,我需要解析一个有效的XDocument.正在测试的方法不会访问文件系统本身.我可以直接在测试代码中从String创建XDocument,但我认为从文件加载它会更容易.

c#

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

如何在远程 Glassfish 服务器上激活 JMX 以使用 jconsole 进行访问?

我想监控远程 glassfish 服务器。我在 domain.xml 中启用了 JMX 连接:

<jmx-connector accept-all="true" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false">
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。我仍然无法使用 JConsole 连接到服务器。然后我找到了解决方案 - 我需要在 domain.xml 中指定 JVM 属性以打开 8686 端口进行远程连接。所以我将此行添加到java-config部分:

<jvm-options>-Dcom.sun.management.jmxremote</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.port=8686</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.local.only=false</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.authenticate=false</jvm-options>
Run Code Online (Sandbox Code Playgroud)

但是现在当我启动服务器时,出现以下错误:

无法加载日志管理器“com.sun.enterprise.server.logging.ServerLogManager”java.lang.ClassNotFoundException:com.sun.enterprise.server.logging.ServerLogManager at java.net.URLClassLoader$1.run(URLClassLoader.java:200)在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher$AppClassLoader .loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 java.util.logging.LogManager$1.run(LogManager.java:166) 在 java.security.AccessController.doPrivileged (本机方法)在 java.util.logging.LogManager.(LogManager.java:156) 在 java.util.logging.Logger。getLogger(Logger.java:273) at sun.management.snmp.util.MibLogger.(MibLogger.java:57) at sun.management.snmp.util.MibLogger.(MibLogger.java:42) at sun.management.jmxremote .ConnectorBootstrap.(ConnectorBootstrap.java:760) at sun.management.Agent.startAgent(Agent.java:127) at sun.management.Agent.startAgent(Agent.java:239) javax.management.JMRuntimeException: 无法加载 MBeanServerBuilder类 com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder:java.lang.ClassNotFoundException:com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder 在 javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java :480) 在 javax.management.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511) 在 javax。management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298) at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213) …

java jmx glassfish jconsole

5
推荐指数
2
解决办法
3万
查看次数

我应该使用php邮件功能还是phpmailer?

好吧,到目前为止,我一直在使用php内置函数,mail(),我没有遇到任何问题,即使我向1000多名用户发送了一个爆炸.但是,最近我发现了这个phpmailer,它是专门设计用来发送电子邮件的.

Q1:我应该改成这个phpmailer吗?

Q2:使用phpmailer有什么好处?

Q3:我在phpmailer网站上发现了其他产品,即phpmailer FE,ML等.那是什么?你们正在使用哪一个?

问题4:有没有人尝试使用phpmailer向2000多名用户发送爆炸邮件?如果是,是否会导致任何问题?

php email phpmailer

7
推荐指数
1
解决办法
8076
查看次数