首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python - Classes-定义

Python - Classes-定义
EN

Stack Overflow用户
提问于 2017-08-28 21:56:16
回答 3查看 125关注 0票数 0

我编写了一个类以及一个定义,回想一下,当你每次使用类变量设置一个值时,你总是可以通过使用定义来调用总金额

代码语言:javascript
复制
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()

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

EN

回答 3

Stack Overflow用户

发布于 2017-08-28 21:59:46

您在getter和setter中混合了这两种功能。getter应该返回变量,setter应该设置值。

代码语言:javascript
复制
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()的值将始终是返回的值

票数 2
EN

Stack Overflow用户

发布于 2017-08-28 22:07:02

使用方法and来改变值,并且不要在类中使用大写字母或camelCase。

代码语言:javascript
复制
class Hand:
   def __init__(self, 0):
     self.hand = hand
   def get_hand_bigger(self, addition):
      self.hand += addition
票数 1
EN

Stack Overflow用户

发布于 2017-08-28 22:00:42

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

代码语言:javascript
复制
def getHand(self, neue_Hand):
   self.Hand = neue_Hand
   return self.Hand
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45920760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档