Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查构造函数是否已分配/初始化_Python - Fatal编程技术网

Python 如何检查构造函数是否已分配/初始化

Python 如何检查构造函数是否已分配/初始化,python,Python,我有如下代码片段 A = a_class() C= Another_Class(A) B = b_class() C = Another_Class(B) 我想在A或B为无时检查/提出错误,或者在X不是A或B时检查另一个_类(X) 谢谢。我不太明白你的问题,但要检查任何变量是否为None,你可以执行如果: if A == None or B == None: raise Exception 要在实例化新对象时引发异常,只需在\uuuuu init\uuuu方法中编写规则。本例认为Cl

我有如下代码片段

A = a_class()
C= Another_Class(A)

B = b_class()
C = Another_Class(B)

我想在A或B为无时检查/提出错误,或者在X不是A或B时检查另一个_类(X)


谢谢。

我不太明白你的问题,但要检查任何变量是否为
None
,你可以执行
如果

if A == None or B == None:
  raise Exception
要在实例化新对象时引发异常,只需在
\uuuuu init\uuuu
方法中编写规则。本例认为
ClassA
ClassB
具有相同的父级,因此对于任何子级,您都可以检查它们是否具有相同的父级:

def __init__(self, attr):
  if not isinstance(attr, Parent):
    raise Exception
完整示例:

def main():
  A = ClassA()
  B = ClassB()
  X = ClassX()

  if A == None or B == None:
    raise Exception

  # Do not raise Exception
  anotherClass = AnotherClass(A)
  # Raise exception cause X doesn't inherit from Parent
  anotherClass = AnotherClass(X)

class Parent(object):
  pass

class ClassA(Parent):
  pass

class ClassB(Parent):
  pass

class ClassX(object):
  pass

class AnotherClass(object):
  def __init__(self, attr):
    if not isinstance(attr, Parent):
      raise Exception

if __name__ == '__main__':
  main()

我认为A=None和A是一个具有self的对象。一些属性=None比特是不同的。你在找什么?在第二种情况下,我认为可以使用
isinstance()
除非您特别重写它们的
\uu新方法,否则
A
B
都不能
无。不清楚你的情况是什么,包括另一类。