在Python中,我想编写一个make_cylinder_volume(r)返回另一个函数的函数.返回的函数应该可以使用参数调用h,并返回具有高度h和半径的圆柱体积r.
我知道如何从Python中的函数返回值,但是如何返回另一个函数?
多年前,当我开始编写OO编程时,我得到的印象是变量(如果这是正确的词)是"基元"(int,double等)或第一类对象(String,JPane等).最近关于Java和C#中的原语的回答进一步证实了这一点(@Daniel Pryden:Java和C#中的原始类型是不同的吗?).但是不知道C#ValueTypes是基元,对象还是其他一些野兽,比如二等对象.我看到SO只使用了一个first-class标签,所以它可能不再是一个有用的术语.
我没有发现维基百科的文章有用("这篇文章需要关于这个主题的专家的关注.").我要感谢分类和当前使用的术语,主要与Java和C#有关(尽管其他语言可能会有所启发).
澄清:我想理解一流的术语以及它的使用范围.
有人可以用一些好的例子清楚地解释它.在解释函数式编程时,我在Scala中遇到了这个声明.
我是一个C#dev进入一些Python的东西,所以我不知道我现在在做什么.我已经读过你不需要使用Python的依赖注入.我被告知你可以在代码中实例化对象并让它们以你想要的方式运行,但是,你可以将这些对象上的方法指向我自己的测试中定义的存根 - 据说没有模拟.
这是真的?我试过这样做,并不能让它工作.这实际上是怎么做到的?如何在没有模拟库的情况下在Python中存根方法?
我对python很陌生,有没有办法使用父实例构造子类?
嗯,我在想:
class A:
def __init__(self,a,b):
self.a = a
self.b = b
class B(A):
def __init__(self,A):
self.super = A
self.c = -1
def __init__(self,a,b,c):
super(a,b)
self.c = c
myA = A(1,2)
myB = B(myA)
Run Code Online (Sandbox Code Playgroud)
所以对于 B 对象,我可以使用 A 对象来构造它们。
有人问我在Python 3编写一个函数为:写一个调用的函数general_poly,这将,例如,评估general_poly([1, 2, 3, 4])(10)对1234因1*10^3 + 2*10^2 + 3*10^1 + 4*10^0.
现在我不明白第二个括号是什么(10)意思.
我的功能如何general_poly知道,将这个值放在自身内部并使用它?
理解这种行为有点难:
def a():
pass
type(a)
>> function
Run Code Online (Sandbox Code Playgroud)
如果type的a就是function,是什么type的function?
type(function)
>> NameError: name 'function' is not defined
Run Code Online (Sandbox Code Playgroud)
又为何type的type距离a是type?
type(type(a))
>> type
Run Code Online (Sandbox Code Playgroud)
最后一个:如果a是object,为什么我不能这样做:
isinstance(a, object)
>> True
class x(a):
pass
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
Run Code Online (Sandbox Code Playgroud)
谢谢!
流行的观点是 C++ 数组更安全,效率几乎相同。除了检查索引是否超出范围和不允许隐式类型转换为指针之外,还有其他功能吗?
此外,为什么传统 C 数组的隐式类型转换被认为是一种糟糕的方式?
我不太擅长 C++(也擅长英语),如果这个问题不值得回答,请原谅我。谢谢!
python ×7
function ×4
oop ×2
c# ×1
c++ ×1
c++11 ×1
call ×1
containers ×1
currying ×1
first-class ×1
inheritance ×1
java ×1
metaclass ×1
mocking ×1
python-2.7 ×1
python-3.x ×1
scala ×1
stl ×1
stub ×1
unit-testing ×1