Python:如何在另一个对象中使用第一类对象构造函数值
现在我有两个对象Python:如何在另一个对象中使用第一类对象构造函数值,python,Python,现在我有两个对象 myu class1=MyClass(x) my_class2=MyClass() 我想在调用my_class2对象时使用x P>其他语言支持静态变量,如java、C++等。您可以改为使用类属性: class MyClass(Object): def __init__(self, x=None): if x: self.x = x def do_something(self): print self.x
myu class1=MyClass(x)
my_class2=MyClass()
我想在调用my_class2对象时使用x
<> P>其他语言支持静态变量,如java、C++等。您可以改为使用类属性:
class MyClass(Object):
def __init__(self, x=None):
if x:
self.x = x
def do_something(self):
print self.x
关于Python类。将其作为属性分配给类:
>>类MyClass(对象):
定义初始化(self,x=None):
如果x不是无:
self.\uuuuu类\uuuuuu.x=x
def do_某事(自我):
打印self.x#或self.u_类_uuu.x,以避免获取实例属性
>>>my_class1=MyClass('aaa')
>>>my_class2=MyClass()
>>>我的班2.做点什么
aaa
Python中没有静态变量,但是可以使用类变量来实现。以下是一个例子:
class Klass:
Attr = 'test'
# access it (readonly) through the class instances:
x = Klass()
y = Klass()
x.Attr
y.Attr
调用self.x
时,它首先查找实例化为self.x
的实例级变量,如果未找到,则查找Class.x
。所以您可以在类级别定义它,但在实例级别重写它
一个广泛使用的示例是使用默认类变量,并可能覆盖到实例中:
class MyClass(object):
x = 0
def __init__(self, x=None):
if x:
MyClass.x = x
def do_something(self):
print "x:", self.x
c1 = MyClass()
c1.do_something()
>> x: 0
c2 = MyClass(10)
c2.do_something()
>> x: 10
c3 = MyClass()
c3.do_something()
>> x: 10
但我需要在运行时设置x的值。还有其他方法吗?@ChZeeshan:是的,你可以把它分配给类,而不是实例。
class MyClass(object):
x = 0
def __init__(self, x=None):
self.x = x or MyClass.x
def do_something(self):
print "x:", self.x
c1 = MyClass()
c1.do_something()
>> x: 0
c2 = MyClass(10)
c2.do_something()
>> x: 10
c3 = MyClass()
c3.do_something()
>> x: 0