关于python中类成员的问题 [英] Question on class member in python
问题描述
A类:
def __init __(自我):
self.member = 1
def getMember(self) :
返回self.member
a = A()
那么,a之间有什么区别吗?会员和a.getMember?谢谢
的帮助。 :)
问候,
Johnny
Class A:
def __init__(self):
self.member = 1
def getMember(self):
return self.member
a = A()
So, is there any difference between a.member and a.getMember? thanks
for your help. :)
Regards,
Johnny
推荐答案
Johnny Lee写道:
Johnny Lee wrote:
A类:
def __init __(自我):
self.member = 1
def getMember(self ):
返回self.member
a = A()
那么,a.member和a.getMember之间有什么区别吗?谢谢你的帮助。 :)
Class A:
def __init__(self):
self.member = 1
def getMember(self):
return self.member
a = A()
So, is there any difference between a.member and a.getMember? thanks
for your help. :)
是的。简单属性的访问器方法是一种Java,在Python中应该避免使用
。如果需要
需要在场景后进行一些计算,你总是可以将属性转换为属性
Yes. accessor methods for simple attributes are a Javaism that should be
avoided in Python. You can always turn an attribute into a property if the
need arises to do some calculations behind the scene
A类(对象):
.... def getMember(个体经营):
....返回self.a * self.b
.... member = property(getMember)
.... def __init __(self):
.... self.a = self。 b = 42
.... A()。成员
class A(object): .... def getMember(self):
.... return self.a * self.b
.... member = property(getMember)
.... def __init__(self):
.... self.a = self.b = 42
.... A().member
1764
I. e。一旦你暴露了一个简单的属性,你就不会被困。
彼得
1764
I. e. you are not trapped once you expose a simple attribute.
Peter
输入以下内容获得答案:
id(a.member)== id(a.getMember())
如果对两个对象有疑问,你会经常发现id()有用
是截然不同的。
Get answer by typing:
id(a.member)==id(a.getMember())
You will often find id() useful when in doubt whether the two objects
are distinct.
Johnny Lee写道:
Johnny Lee wrote:
A类:
s / C / c /
def __init __(个体经营):
self.member = 1
def getMember(个体经营):
返回自我.member
a = A()
那么,a.member和a.getMember之间有什么区别吗?
Class A:
s/C/c/
def __init__(self):
self.member = 1
def getMember(self):
return self.member
a = A()
So, is there any difference between a.member and a.getMember?
yes:a.member是一个整数,a.getMember是一个绑定方法。你可以
自己发现这个...
注意getter / setter瘟疫是没用的和unpythonic。如果您需要控制属性访问,请使用
属性。有一些
装饰成语可以制作干净简单的属性,请看这里:
http://wiki.python.org/moin/PythonDecoratorLibrary
-
bruno desthuilliers
python -c" print''@''。join([''。''。join([w [:: - 1] for w in p.split(''。'')])for br /'
p in''o **** @ xiludom.gro''。split(''@'')])"
yes : a.member is an integer, a.getMember is a bound method. You could
have found this by yourself...
Note that the getter/setter plague is useless and unpythonic. Use
properties instead if you need to control attributes access. There are
decorator idioms to make clean and easy properties, look here:
http://wiki.python.org/moin/PythonDecoratorLibrary
--
bruno desthuilliers
python -c "print ''@''.join([''.''.join([w[::-1] for w in p.split(''.'')]) for
p in ''o****@xiludom.gro''.split(''@'')])"
这篇关于关于python中类成员的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!