我在测试下面的代码时发现'keys'属性没有在我的对象中继承:
var obj = {x: 0, y:1};
console.log (Object.keys); //function
console.log (obj.keys); //undefined
因此,我的理解是某些属性(在Object中)不会在用户定义的对象中继承。为什么?这些属性只能通过Object对象获得吗?是否有任何hack来获取在用户定义的对象中不可用或继承的属性列表?
答案 0 :(得分:1)
def cols_via_concat(df):
df = pd.concat([df, df.apply(lambda row: pd.Series({i : i * row[i-100] for i in range(100, 150)}), axis=1)])
return df
%timeit cols_via_concat(df)
1 loops, best of 3: 450 ms per loop
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1000 entries, 0 to 999
Columns: 150 entries, 0 to 149
dtypes: float64(150)
memory usage: 1.2 MB
None
是Object.keys
变量的静态属性,Object
是obj.keys
变量的属性,它将继承自obj
。你会发现这会起作用:
Object.prototype
答案 1 :(得分:1)
仅继承.prototype
对象作为原型。 静态类属性不是。
function Foo() {};
Foo.prototype.bar = function () {};
Foo.baz = function () {};
var f = new Foo();
f
将继承bar
,但不会继承baz
。