Questions tagged «python-datamodel»

有关与Python数据模型相关的各种细节的问题:内置类型,类,元类,魔术__dunder__方法,运算符,对象初始化,属性查找等。请始终记住将“ python”标记与此标记一起使用。鼓励在适当时使用特定的标签,例如“ operators”或“ metaclass”。


9
获取实例的类名?
如果我从中创建函数的基类是派生该实例类的基类,那么如何找到在Python中创建对象实例的类的名称? 我想也许检查模块可能在这里帮助了我,但似乎没有给我我想要的东西。除了解析__class__成员之外,我不确定如何获取此信息。


15
如何获取方法参数名称?
鉴于Python函数: def a_method(arg1, arg2): pass 如何提取参数的数量和名称。即,鉴于我有提及func,因此我希望func.[something]返回("arg1", "arg2")。 这样做的使用场景是我有一个装饰器,并且我希望以与实际函数作为键一样的顺序使用方法参数。即,"a,b"我致电时装饰工的外观如何a_method("a", "b")?

10
在Python中获取对象的全限定类名
出于记录目的,我想检索Python对象的完全限定的类名。(对于完全限定,我的意思是类名称,包括软件包和模块名称。) 我知道x.__class__.__name__,但是有一种简单的方法来获取软件包和模块吗?

5
在__getitem__中实现切片
我正在尝试为正在创建的类创建切片功能,该类创建矢量表示。 到目前为止,我已经有了这段代码,我相信它将正确实现切片,但是每当我进行诸如v[4]v是矢量的调用时,python都会返回有关参数不足的错误。因此,我试图找出如何getitem在我的类中定义特殊方法来处理纯索引和切片。 def __getitem__(self, start, stop, step): index = start if stop == None: end = start + 1 else: end = stop if step == None: stride = 1 else: stride = step return self.__data[index:end:stride]


6
获取定义方法的类
如何获得在Python中定义方法的类? 我想要以下示例打印“ __main__.FooClass”: class FooClass: def foo_method(self): print "foo" class BarClass(FooClass): pass bar = BarClass() print get_class_that_defined_method(bar.foo_method)

11
禁止在__init__之外创建新属性
我希望能够创建一个用Python初始化的类(在Python中),该类__init__不接受新属性,但接受对现有属性的修改。我可以通过几种方法来做到这一点,例如,使用__setattr__诸如 def __setattr__(self, attribute, value): if not attribute in self.__dict__: print "Cannot set %s" % attribute else: self.__dict__[attribute] = value 然后__dict__直接在内部进行编辑__init__,但是我想知道是否存在“正确”的方法?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.