Not Defined error in basic code
On 3/14/19 10:11 AM, Calvin Spealman wrote:
> Where are you seeing something like this? The two lines under `class
> weapon:` are not correct because they are variable names that you've
> never defined.
> Maybe you intended this to "declare" the attributes for the class?
> That isn't something you need to do in Python. If you simply remove
> these lines your example should work.
> On Thu, Mar 14, 2019 at 10:05 AM Jack Dangler <tdldev at gmail.com
> <mailto:tdldev at gmail.com>> wrote:
> Just getting started with tutorials and such, and don't understand
> this -
> <file: class_weapon.py>
> class weapon:
> ???? weaponId
> ???? manufacturerName
> ???? def printWeaponInfo(self):
> ???????? infoString = "ID: %d Mfg: %s Model: %s" % (self.weaponId,
> ???????? return infoString
> <file: weaponTrack.py>
> import class_weapon
> MyWeapon.weaponId = 100
> MyWeapon.manufacturerName = "Glock"
> executing 'python3 weaponTrack.py' results in this bailing on the
> element in the class with "not defined". I've been staring at
> of this exact structure for about an hour trying to figure out why
> isn't running at all. Is it simply because it isn't all in one file?
> Thanks for any guidance. Really appreciate the help.
> CALVIN SPEALMAN
> SENIOR QUALITY ENGINEER
> cspealma at redhat.com <mailto:cspealma at redhat.com> M: +1.336.210.5107
> TRIED. TESTED. TRUSTED. <https://redhat.com/trusted>
Thank you for the reply. I tried defining them in the form of 'int
weaponId' but that didn't help. I finally put it in this form
'weaponId=0" and it liked that. So, i updated the class file to be as
???? def printWeaponInfo(self):
???????? infoString = "ID: %d Mfg: %s " % (self.weaponId,
???????? return infoString
The second file now looks like this -
MyWeapon.weaponId = 100
MyWeapon.manufacturerName = "Glock"
so now, when I run 'python3 weaponTrack.py', I get <function
weapon.printWeaponInfo at 0x7f2bd3ae7510>, but am expecting
ID: 100 Mfg: Glock ...