小编Kir*_*rov的帖子

如何调用以及如何完成(`function_name.decorator`)?

真的很抱歉极其愚蠢的头衔,但如果我知道它是什么,我不会写在这里(:

def some_decorator( func ):
    # ..

class A:
    @some_decorator
    def func():
        pass
    @func.some_decorator    # this one here - func.some_decorator ?
    def func():
        pass
Run Code Online (Sandbox Code Playgroud)

some_decorator装饰func- 没关系.但是,成员(或其他什么?)是什么func.some_decorator以及如何some_decorator成为func

PS我90%肯定,这里有这样的问题(因为这似乎是基本的东西),但我不知道如何搜索它.如果有完全重复,我会删除这个问题.


注意:两个成员函数都被命名,这不是错字,也不是偶然的func.装饰器用于重载:问题与装饰方法有关(类方法重载)

python decorator python-3.x

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

logrotate表示在旋转日志/重新创建日志文件时拒绝权限

我是新手在linux机器上进行logrotate ...这是我在我的应用程序的logrotate.d文件中设置的内容:

/var/log/myapp.log {
daily
missingok
create 0660 root utmp
rotate 1
}
Run Code Online (Sandbox Code Playgroud)

我使用chmod直接从bash shell为mypro.log文件设置了运行相关应用程序的帐户的所有者权限.

当应用程序第一次运行时,一切都很好.它记录得很好,一切都很好.但是当日志轮换时,它会删除日志文件,然后尝试重新创建日志文件,并提供权限被拒绝错误:

/bin/bash: /var/log/myapp.log: Permission denied
Run Code Online (Sandbox Code Playgroud)

我知道我在使用logrotate配置文件或chmod或其他东西时出错了...有人能指出我正确的方向并帮我解决问题吗?

linux file-permissions logrotate chmod permission-denied

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

'getContent':并非所有控制路径都返回一个值"

`getContent` : not all control paths return a value
Run Code Online (Sandbox Code Playgroud)

这是我在编译C程序时得到的警告,其中getContent是一个bool带有网站名称和缓冲区作为参数的方法,如果在缓冲区中没有检索到所需的页面,则在该函数中递归调用它.

如何删除此警告?

c

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

动态链接,内存使用和并发

当可执行文件与静态库链接时,可执行文件仅包含代码中使用的必要库部件,对吧?

但是我错过了这个部分 - 如何使用共享对象(动态链接库)?

据我所知,它们不包含在可执行文件中,它们是动态加载的dlopen,这是由链接器直接完成的,对吧?

在这种情况下,这个库位于内存中的哪个位置?我的意思是,这里有帖子,解释说动态库可以减少内存使用量,但究竟是怎么回事?如果动态库以某种方式加载到共享内存中(对于多个进程),在这种情况下内核如何处理并发?

我意识到这可能是基本的,如果这是重复的话我很抱歉,我找不到这样的.
我知道静态链接与动态链接,我问的是有点不同.

c c++ unix memory dynamic-linking

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

c中线程的内存分配

我怎样才能减少C中线程使用的内存?虽然一个线程占用大约8到10 MB的内存,有没有办法减少这个内存?

c linux

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

是否有一种棘手的方法可以避免覆盖在多重继承中使用的模板基类的所有纯虚函数

相当复杂(和坏)的标题,这就是我的例子:

struct type1 {};
struct type2 {};
struct type3 {};

template< typename TYPE >
struct interface {
    virtual void f( TYPE ) = 0;
};

struct processor {
    template< typename TYPE >
    void f( TYPE ) {
        // something + for some TYPE-s have specializations, but it's irrelevant
    }
};

struct der: interface< type1 >, interface< type2 >, interface< type3 > {
    processor p;

    void f( type1 t ){ p.f( t ); }
    void f( type2 t ){ p.f( t …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates multiple-inheritance member-functions

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

在C++中重载operator时"const"是什么意思

我看到类似的东西:

const char& operator[] (int Index) const
Run Code Online (Sandbox Code Playgroud)

const我明白的第一个.这是为了保护回归char不受修改.

但是第二个const意思是什么呢?为什么我们有时会使用两个const,有时只使用一个?

c++ const operator-overloading

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

套接字绑定不会返回int

我的代码片段如下所示:

int descriptor = socket(AF_INET, SOCK_STREAM, 0);
if(descriptor < 0){
    cerr << "Error establishing socket connection." << endl;
    return -1;
}
int port = 3400;
struct sockaddr_in address;
char buffer[140];
address.sin_family = AF_INET;
address.sin_addr.s_addr = htons(INADDR_ANY);
address.sin_port = htons(port);
int size = sizeof(address);
if(bind(descriptor,(struct sockaddr*)&address,size) < 0){
    cerr << "Error binding socket." << endl;
}
cout << "Waiting for connection on " << INADDR_ANY << " on port " << port << ends;
Run Code Online (Sandbox Code Playgroud)

每当我尝试编译时,我都会收到以下错误:

error: invalid operands to binary expression …
Run Code Online (Sandbox Code Playgroud)

c++ sockets tcp server

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

移动对象而不使用移动构造函数

还有一次关于这一点,但相关的问题没有回答我的问题.

标准很清楚:

12.8复制和移动类对象,
§9
如果类X的定义没有显式声明移动构造函数,当且仅当
- X没有用户声明的复制构造函数时,将隐式声明为默认值,
- X没有用户声明的复制赋值运算符,
- X没有用户声明的移动赋值运算符,
- X没有用户声明的析构函数,并且
- 移动构造函数不会被隐式定义为已删除.
[注意:当未隐式声明或显式提供移动构造函数时,否则将调用移动构造函数的表达式可能会调用复制构造函数. - 结束说明]

所以,在注意到最后的"Note"之前,我预计这段代码会无法编译(虽然我知道,移动应该回退到复制):

#include <iostream>
using std::cout;
class c
{
public:
    c() { cout << "c::c()\n"; }
    c( std::initializer_list< int > ) { cout << "c::c( std::initializer_list )\n"; };

    c( const c& ) { cout << "c::c( const c& )\n"; }
    c& operator=( const c& ) { cout << "c& c::operator=( const c& )\n"; return *this; }

    ~c() { cout << "c::~c()\n"; …
Run Code Online (Sandbox Code Playgroud)

c++ move move-constructor implicit-constructor

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

如何将变量或替换等操作分配给变量

我想做点什么

class A:
    def __init__( self, left, right, op ):
        self.left = left
        self.right = right
        self.op = op
    def calculate( self ):
        self.number = op( self.left, self.right )
        return self.number
Run Code Online (Sandbox Code Playgroud)

并使用它,例如,像这样:

a = A( 1, 2, + )
a2 = A( 2, 3, * )
Run Code Online (Sandbox Code Playgroud)

我试着这样做

op = +
op = __add__
Run Code Online (Sandbox Code Playgroud)

但这些都没有奏效.有人可以说这是可能的(如果是的话,这怎么称呼,因为我甚至不知道如何搜索它).或者唯一可能的方法是if-else在中calculate查找一个大而丑陋的语句op,并将其存储为str

谢谢!

python

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