Python:如何在被调用的方法中获取调用者的方法名?
假设我有两种方法:
def method1(self):
...
a = A.method2()
def method2(self):
...
Run Code Online (Sandbox Code Playgroud)
如果我不想对method1进行任何更改,如何在method2中获取调用者的名称(在此示例中,名称为method1)?
给定一个类Foo(无论它是否是一个新类),如何生成所有基类 - 在继承层次结构中的任何位置 - 它issubclass?
假设你有一个像这样的javascript对象:
var data = { foo: 'bar', baz: 'quux' };
Run Code Online (Sandbox Code Playgroud)
您可以通过属性名称访问属性:
var foo = data.foo;
var baz = data["baz"];
Run Code Online (Sandbox Code Playgroud)
但是,如果您不知道属性的名称,是否可以获取这些值?这些属性的无序性质是否使它们无法区分?
在我的情况下,我特别想到一个函数需要接受一系列名称 - 值对的情况,但属性的名称可能会改变.
到目前为止,我对如何执行此操作的想法是将属性的名称与数据一起传递给函数,但这感觉就像一个黑客.如果可能的话,我宁愿用内省来做这件事.
在关闭括号之前/,Python 3.4的help输出意味着什么range?
>>> help(range)
Help on class range in module builtins:
class range(object)
| range(stop) -> range object
| range(start, stop[, step]) -> range object
|
| Return a virtual sequence of numbers from start to stop by step.
|
| Methods defined here:
|
| __contains__(self, key, /)
| Return key in self.
|
| __eq__(self, value, /)
| Return self==value.
...
Run Code Online (Sandbox Code Playgroud) 我有一个Java对象'ChildObj',它从'ParentObj'扩展而来.现在,如果可以使用Java反射机制检索ChildObj的所有属性名称和值,包括继承的属性?
Class.getFields为我提供了公共属性数组,Class.getDeclaredFields为我提供了所有字段的数组,但它们都没有包含继承的字段列表.
有没有办法检索继承的属性呢?
我试图class使用泛型动态创建基于实例的类型,但是我遇到了类内省的困难.
以下是问题:
self.class?AnyClass结果实例化一个类NSClassFromString?AnyClass从通用参数中获取或以其他方式严格输入信息T?(类似于C#的typeof(T)语法)如何在Objective-C中获取给定对象属性的列表(以NSArray或的形式NSDictionary)?
想象一下以下场景:我已经定义了一个只扩展的父类NSObject,它将a NSString,a BOOL和一个NSData对象作为属性.然后我有几个扩展这个父类的类,每个类都添加了许多不同的属性.
有没有什么方法可以在父类上实现一个遍历整个对象的实例方法,然后返回NSArray每个(子)类属性的一个,因为NSStrings它不在父类上,所以我以后可以使用这些NSString对于KVC?
给定一个Django模型,我试图列出它的所有字段.我已经看到了一些使用_meta模型属性执行此操作的示例,但是meta前面的下划线是否表示_meta属性是私有属性,不应该直接访问?...例如,因为_meta的布局将来可能会改变而不是一个稳定的API?
_meta是这个规则的例外吗?它是否稳定并且可以使用,或者它被认为是不好的做法?或者是否有函数或其他方法来反省模型的字段而不使用_meta属性?下面是一些链接的列表,显示了如何使用_meta属性执行此操作
任何建议都非常感谢.
我有一个字典,我需要传递键/值作为关键字参数..例如..
d_args = {'kw1': 'value1', 'kw2': 'value2'}
example(**d_args)
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但是如果d_args dict中的值没有被example函数接受,它显然会死掉..比如说,如果示例函数定义为def example(kw2):
这是一个问题,因为我不控制生成d_args或example函数..它们都来自外部模块,example只接受来自dict的一些关键字参数.
理想情况下我会这样做
parsed_kwargs = feedparser.parse(the_url)
valid_kwargs = get_valid_kwargs(parsed_kwargs, valid_for = PyRSS2Gen.RSS2)
PyRSS2Gen.RSS2(**valid_kwargs)
Run Code Online (Sandbox Code Playgroud)
我可能只是从有效的关键字参数列表中过滤掉dict,但我想知道:有没有办法以编程方式列出特定函数所需的关键字参数?
有没有一种直接的方法来查找属于python包的所有模块?我发现这个旧的讨论并不是真正的结论,但在推出基于os.listdir()的自己的解决方案之前,我希望得到明确的答案.
introspection ×10
python ×5
class ×2
properties ×2
arguments ×1
attributes ×1
django ×1
inheritance ×1
iteration ×1
java ×1
javascript ×1
metamodel ×1
module ×1
object ×1
objective-c ×1
oop ×1
packages ×1
python-3.x ×1
reflection ×1
swift ×1