Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #97849

Re: variable scope of class objects

From Dennis Lee Bieber <wlfraed@ix.netcom.com>
Subject Re: variable scope of class objects
Date 2015-10-20 20:18 -0400
Organization IISS Elusive Unicorn
References <q3da2bplpbt2njpoojie8ogfo7te63lhn2@4ax.com> <n04m96$tvd$1@speranza.aioe.org> <9ocd2btlkq7kp3margtn4sj3mehd7bpimm@4ax.com>
Newsgroups comp.lang.python
Message-ID <mailman.64.1445386763.878.python-list@python.org> (permalink)

Show all headers | View raw


On Tue, 20 Oct 2015 17:33:21 -0400, JonRob@mail.python.org declaimed the
following:

>
>
>Hello Luca,
>
>I very much appreciated your comments.  And I understand the
>importance of "doing something right"  (i.e. convention).
>
>This leads me to another question.
>
>Because I am interfacing with an I2C sensor I have many register
>definations to include (30 register addresses and  26 Variables to be
>red from some of those registers.
>In your comment you mentioned that convention is to declare variables
>(and constants?)  in the construction (__ini__).
>I am concerned that the sheer number of varialbe / constants would
>make it difficult to read.
>

	"Constants" are typically defined at module level, using all capitals
as a hint to the reader (Python does not have anything that one might
consider a true constant -- other than the language defined singletons:
None, and maybe by now True and False).

	Register addresses are likely "constants". Not sure about your "26
Variables"... Do they map directly to registers, or are they extracted as
fields from the values returned -- that is, a register may have two or more
"variables"? Do you read ALL registers on command and hold the values (note
my usage -- values can be held in lists or dictionaries using a single
"variable") for later retrieval by the user, or only read A register on
command by the user and return that value.

-=-=-=-=-
#	registers for a fictitious motion sensor
GYROXREG = 0x0010
GYROYREG = 0x0011
GYROZREG = 0x0001
...
MAGZREG = 0x0100

class SensorA(I2C):	#I'm assuming class I2C provides read/write functions
	_registers = [GYROXREG, GYROYREG, GYROZREG,
					..., MAGZREG]
	def __init__(self, SCLpin, SDApin, slaveAddress):
		self._SCL = SCLpin
		self._SDA = SDApin
		self._addr = slaveAddress
		self.update()	#initial load of values
	def update(self):
		#basically a loop over all addresses
		#I'm not going to try to pseudo code the full I2C protocol
		self.values = {}	#yes, a dictionary
		for reg in _registers:
			aValue = self.read(self._SCL, self._SDA, self._addr, reg)
					#inherited from I2C class
			self.values[reg] = aValue
....

mySensor = SensorA(21, 22, 0x6)

while True
	mySensor.update()
	print ("Gyro X: %s, Y: %s, Z: %s"
			% (mySensor.values[GYROXREG],
				mySensor.values[GYROYREG],
				mySensor.values[GYROZREG]))
	time.sleep(1.0)


			
		
-- 
	Wulfraed                 Dennis Lee Bieber         AF6VN
    wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

variable scope of class objects JonRob - 2015-10-19 14:39 -0400
  Re: variable scope of class objects Random832 <random832@fastmail.com> - 2015-10-19 15:01 -0400
    Re: variable scope of class objects JonRob - 2015-10-20 17:11 -0400
  Re: variable scope of class objects sohcahtoa82@gmail.com - 2015-10-19 16:19 -0700
    Re: variable scope of class objects Terry Reedy <tjreedy@udel.edu> - 2015-10-19 20:03 -0400
  Re: variable scope of class objects Nagy László Zsolt <gandalf@shopzeus.com> - 2015-10-20 07:31 +0200
  Re: variable scope of class objects Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-10-20 08:17 +0200
    Re: variable scope of class objects Nagy László Zsolt <gandalf@shopzeus.com> - 2015-10-20 08:38 +0200
      Re: variable scope of class objects Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-10-20 09:23 +0200
    Re: variable scope of class objects JonRob - 2015-10-20 17:33 -0400
      Re: variable scope of class objects Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-10-20 20:18 -0400
        Re: variable scope of class objects JonRob - 2015-10-21 19:35 -0400
          Re: variable scope of class objects Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-10-22 11:59 +0200
      What does it mean for Python to have “constants”? (was: variable scope of class objects) Ben Finney <ben+python@benfinney.id.au> - 2015-10-21 11:27 +1100
      Re: What does it mean for Python to have “constants”? Nagy László Zsolt <gandalf@shopzeus.com> - 2015-10-21 08:13 +0200
      Re: variable scope of class objects Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-10-22 07:55 +0200
      Re: variable scope of class objects Erik <python@lucidity.plus.com> - 2015-10-20 23:17 +0100

csiph-web