关于python中类成员的问题 [英] Question on class member in python

查看:71
本文介绍了关于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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆