标签: init

python 数据类没有属性 post_init

当我运行下面的代码时:

import pandas as pd
from dataclasses import dataclass


@dataclass
class SomeClass:
    df_in: pd.DataFrame

    def __post__init__(self):
        self.b = 1


if __name__ == '__main__':
    df_in = pd.DataFrame([])
    p = SomeClass(df_in=df_in)
    p.b
Run Code Online (Sandbox Code Playgroud)

我明白了

AttributeError: 'SomeClass' object has no attribute 'b'
Run Code Online (Sandbox Code Playgroud)

为什么?

编辑:

我是否正确使用post__init因为数据类中没有init

python post init

0
推荐指数
1
解决办法
1720
查看次数

Kotlin 在构造函数中初始化函数内部变量

在 Kotlin 中,未声明为 nullable 或 Lateinit 的变量必须在构造函数(或 init)中初始化。我正在尝试这样做:

class Foo{
    var foo:myType
    init{
        complicatedFooInit()
    }

    fun complicatedFooInit(){
         foo = //a whole bunch of code here
    }

}
Run Code Online (Sandbox Code Playgroud)

我仍然收到Property must be initialized or declared abstract错误。您可以通过在函数中创建myTypeanInt并将其设置为等于 3 来轻松重现此情况complicatedFooInit。显然有一些方法可以解决这个问题(只是不让它成为一个函数,让complicatedFooInitreturnmyType并将 foo 设置为等于它,等等)。我的问题是,为什么上面的代码无效?或者经过一些调整后它是否有效?

class init kotlin

0
推荐指数
1
解决办法
2326
查看次数

单元测试python"__init __()需要2个参数(给定1个)"

我的单元测试有问题,我不知道为什么,我有以下堆栈:

    Traceback (most recent call last):
  File "novaapiclient_tests.py", line 11, in test_create_server
    nova = novaapiclient.NovaAPIClient()
TypeError: __init__() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

按照我的测试代码:

class TestFunction(unittest.TestCase):

    def setUp(self):
        self.nova = novaapiclient.NovaAPIClient()

    def test_create_server(self):
        self.setUp()
        lsbf = self.nova.lst_of_servers(self.nova.listServers())
        image = "3f9e6696-2ed2-4e06-ae16-c828062addbe"
        flavor = "m1.tiny"
        name = "testing_unit"
        self.nova.createServer(image, flavor, name)
        time.sleep(60)
        lsaf = self.nova.lst_of_servers(self.nova.listServers())
        if(len(lsbf) < len(lsaf)):
            assertTrue(True)
        else:
            assertTrue(False)


    def delete_server(self):
        self.setUp()
        serv_id = "13e0c3de-d736-47ec-bc22-3a794aa3e2a9"
        self.nova.deleteServer(serv_id)
        ls = self.nova.lst_of_servers(self.nova.listServers())
        j = 0
        fin = False
        while(j < 3 and not …
Run Code Online (Sandbox Code Playgroud)

python unit-testing init

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

c ++ std :: vector"this"是"nullptr"

由于某种原因,我不能在datacenter.cpp中使用vector _vec.它说" 这个 "是"nullptr"

请帮助,谢谢<3

datacenter.h

#pragma once
#include <iostream>
#include <vector>

class datacenter
{
public:
    datacenter();
    ~datacenter();

    void get_elements();

    std::vector<float> _vec;
};
Run Code Online (Sandbox Code Playgroud)

datacenter.cpp

#include "datacenter.h"

datacenter::datacenter(){}

void datacenter::get_elements()
{
if (_vec.empty()) { //<---- the error appears here
    std::cout << "empty" << std::endl;
    }
}

datacenter::~datacenter(){}
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include <iostream>
#include <vector>
#include "datacenter.h"

class datacenter;

int main()
{
std::unique_ptr<datacenter> dc;
dc->get_elements();
}
Run Code Online (Sandbox Code Playgroud)

c++ smart-pointers vector init nullptr

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

标签 统计

init ×4

python ×2

c++ ×1

class ×1

kotlin ×1

nullptr ×1

post ×1

smart-pointers ×1

unit-testing ×1

vector ×1