Python - 类 - 定义

时间:2017-08-28 13:56:16

标签: python python-2.7 class python-2.x definition

我编写了一个类以及一个定义的反面思考当你, 每次使用类变量设置一个值时,您总是可以使用定义

来调用总量
class Hand():

    def __init__(self, Hand=0):
        self.Hand = Hand

    def getHand(self, neue_Hand):
        self.Hand = neue_Hand

    def set_hand(self):
        return self.Hand

c = Hand()

def Aufruf():
    Total = 0
    Total += c.getHand(0)
    return Total


c.getHand(12)

Aufruf()

它每次都会更改值,但不会像预期的那样累积它。

3 个答案:

答案 0 :(得分:2)

您已经混淆了getter和setter中的功能。 getter应该返回变量,setter应该设置值。

class Hand():

    def __init__(self,Hand=0):
        self.Hand = Hand

    def getHand(self):
        return self.Hand

    def set_hand(self, neue_Hand):
        self.Hand = neue_Hand

    def increment_hand(self, neue_Hand_incremenet):
        self.Hand += neue_Hand_incremenet

c = Hand(10)
c.getHand()
>> 10
c.set_hand(20)
c.getHand()
>> 20    

def Aufruf():
    Total = 0
    Total += c.getHand()
    return Total

Aufruf()
>> 20
c.increment_hand(10)
Aufruf()
>> 30

另外作为旁注: 如果你仔细观察,你会发现你的方法Aufruf实际上是getHand()方法的完全重复(逻辑上)。当您在方法代码块中实例化变量total = 0时,在调用方法时,此值将始终设置为0,这意味着来自c.getHand()的值将始终为' s返回

答案 1 :(得分:1)

使用方法添加来更改价值,并且不要在班级内使用大写字母或camelCase。

class Hand:
   def __init__(self, 0):
     self.hand = hand
   def get_hand_bigger(self, addition):
      self.hand += addition

答案 2 :(得分:0)

您的类方法getHand不返回任何值,但它正在被调用。试试这个:

def getHand(self, neue_Hand):
   self.Hand = neue_Hand
   return self.Hand