0
class Mobile:
    def __init__(self,versionNum, isAndroid, memorysize):
        self.__versionNum = versionNum
        self.__isAndroid = isAndroid
        self.memorySize = memorysize
        self.__appArray = []
        self.used_memory = 0
    
    @versionNum.setter
    def versionNum(self, versionNum):
        self.__versionNum = versionNum
    
    @isAndroid.setter
    def isAndroid(self, bool):
        self.__isAndroid = bool
    
    @memorysize.setter
    def memorysize(self, size):
        self.__memorysize = size

I use proprety setter to the version of Mobile but i get an error

DeepSpace
  • 78,697
  • 11
  • 109
  • 154
User20
  • 1
  • 3

1 Answers1

1

There are several problems:

  1. You can't have a setter without a getter
  2. You probably want to avoid __ as a prefix (why)
  3. self.memorySize is both an attribute and a property.
  4. You probably want to avoid bool as a variable name as it shadows the built-in bool
  5. PEP8 conventions say that attribute names should be camel-cased

See the below fixes.

class Mobile:
    def __init__(self, version_num, is_android, memory_size):
        self._version_num = version_num
        self._is_android = is_android
        self._memory_size = memory_size
        self._app_array = []
        self.used_memory = 0
    
    @property
    def version_num(self):
        return self._version_num
    
    @version_num.setter
    def version_num(self, version_num):
        self._version_num = version_num
    
    @property
    def is_android(self):
        return self._is_android
    
    @is_android.setter
    def is_android(self, is_android):
        self._is_android = is_android
    
    @property
    def memory_size(self):
        return self._memory_size
    
    @memory_size.setter
    def memory_size(self, size):
        self._memory_size = size
DeepSpace
  • 78,697
  • 11
  • 109
  • 154
  • 1
    You can't have a setter without a *property*; you can have a property without a getter: e.g., `version_num = property(None, lambda s, v: setattr(s, '_version_num', v))`. – chepner Oct 11 '20 at 21:20