小编Fom*_*aut的帖子

如何在Python中按内容创建模块对象

我有一个包含python代码的字符串.有没有办法使用没有附加文件的字符串创建python模块对象?

content = "import math\n\ndef f(x):\n    return math.log(x)"

my_module = needed_function(content) # <- ???

print my_module.f(2) # prints 0.6931471805599453
Run Code Online (Sandbox Code Playgroud)

请不要建议使用evalexec.我需要一个python模块对象.谢谢!

python python-2.7

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

如何将结构存储到Rust中的变量中?

Rust允许在函数内声明一个结构,但它不允许以简单的方式为它赋值变量.

fn f1() -> (something) {
    struct mystruct {
        x: i32,
    }

    let s = mystruct;

    s
}

fn f2(s: something) {
    let obj = s { x: 5 };
    println!(obj.x);
}

fn main() {
    let s = f1();
    f2(s);
}
Run Code Online (Sandbox Code Playgroud)

是否可以以不同的方式将结构存储到变量中?如何正确编写结构类型?在我的项目中,我想在函数内部声明一个struct,并在另一个内部创建实例.

rust

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

如何计算Python 3.6中函数的调用次数?

我想计算f里面函数的调用次数inc.我应该如何修改功能main呢?

我有这个代码:

def inc(f):
    f()
    f()

def main():
    a = 0
    def f():
        a += 1
    inc(f)
    print(a)  # should print 2

main()
Run Code Online (Sandbox Code Playgroud)

但它导致错误:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    main()
  File "main.py", line 9, in main
    inc(f)
  File "main.py", line 2, in inc
    f()
  File "main.py", line 8, in f
    a += 1
UnboundLocalError: local variable 'a' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

如何检查指针在C中是否空闲?

有没有办法检查指针之前是否有空?

例如,如果我运行此代码:

int* p = (int*)malloc(1000);
free(p);
p = (int*)realloc(p, 2000);
Run Code Online (Sandbox Code Playgroud)

我收到错误:

*** Error in `./main': realloc(): invalid old size: 0x00000000012ab010 ***
...
Run Code Online (Sandbox Code Playgroud)

我希望有机会p在致电之前检查realloc以避免此类错误.

c

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

如何在方法中将结构的数据分配给self?

我正在尝试修改self临时存储到另一个变量中的内容。在最后一步,我想将变量中的所有数据复制到self.

struct A {
    x: i32,
}

impl A {
    fn new() -> Self {
        Self { x: 0 }
    }

    fn change(&mut self) {
        let mut a = Self::new();
        a.x += 1;

        self = a; // How to copy data from a variable into self?
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

struct A {
    x: i32,
}

impl A {
    fn new() -> Self {
        Self { x: 0 }
    }

    fn change(&mut self) {
        let mut a …
Run Code Online (Sandbox Code Playgroud)

methods reference rust

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

Python中的集合有没有神奇的方法?

我有一个像这样的自定义对象:

class MyObject:
    def __init__(self, x, y):
        self.x = x
        self.y = y
Run Code Online (Sandbox Code Playgroud)

我希望它根据规则与集合一起使用:如果对象相同,则x它们相等

s = set()
s.add(MyObject(1, 2))

print(MyObject(1, 3) in s)  # It is False. I want it to be True, because `x = 1` for both.
Run Code Online (Sandbox Code Playgroud)

有没有一种神奇的方法可以实现MyObject我的目的?

python python-3.x

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

如何在 Rust 中有效地找到 u64 整数的下一个 2 幂?

我正在寻找一种快速的方法来在 Rust 中找到 64 位整数的下一个 2 的幂。例如,如果我有 23 结果必须是 32。我试过这个代码:

fn ceil_pow2(x: u64) -> u64 {
    let mut y: u64 = x;
    let mut z: u64 = 1;
    while y > 0 {
        y >>= 1;
        z <<= 1;
    }
    if z == 2 * x {
        z >>= 1;
    }
    z
}
Run Code Online (Sandbox Code Playgroud)

如果给出正确的结果但代码看起来效率不高,我相信有一种更快的实现方法。有人可以帮忙吗?Asm如果 Rust 函数内的代码能提高性能,它是受欢迎的。

rust

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

如何将对self的可变引用转换为不可变引用以用作方法的参数?

我有以下无法编译的代码:

struct A {
    x: i32,
}

impl A {
    fn add_assign(&mut self, other: &Self) {
        self.x += other.x;
    }

    fn double(&mut self) {
        self.add_assign(self);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

error[E0502]: cannot borrow `*self` as mutable because it is also borrowed as immutable
  --> src/lib.rs:11:9
   |
11 |         self.add_assign(self);
   |         ^^^^^----------^----^
   |         |    |          |
   |         |    |          immutable borrow occurs here
   |         |    immutable borrow later used by call
   |         mutable borrow occurs here
Run Code Online (Sandbox Code Playgroud)

如何传递self作为参数add_assign?我已经试过&self, …

methods reference immutability rust

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

标签 统计

rust ×4

python ×3

methods ×2

python-3.x ×2

reference ×2

c ×1

immutability ×1

python-2.7 ×1