首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >封装未正确初始化?

封装未正确初始化?
EN

Stack Overflow用户
提问于 2020-05-31 03:21:25
回答 1查看 35关注 0票数 0

我只是想了解更多关于封装的知识,发现我们不能打印已经封装的值,我们必须定义一个单独的方法来打印出值,但是在我的代码中,我试图打印出类的一个属性,它起作用了,那么我的封装中有错误吗?

代码:

代码语言:javascript
复制
class Time:
    timethytom = 'Best'

    def __init__(self, hours, minutes):
        self.__hours = hours
        self.__minutes = minutes

    def setTime(self,hour,minute):
        self.__hours = hour
        self.__minutes = minute

    def getTime(self):
        print(f'Time is {self.__hours}hr {self.__minutes}min')

    def addTime(self, hour1, hour2, minute1, minute2):
        print(f'{hour1+hour2} hours and {minute1+minute2} minutes')


time1 = Time(10, 20)

time1.setTime(20,5)
time1.hours = 55
time1.getTime()

print(time1.hours)

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-31 03:36:47

在Python中,可以从类外创建类中的公共变量,如下所示:

代码语言:javascript
复制
class xyz:
  pass

x = xyz()
x.y=10
print(x.y) #This will print 10

当您编写这一行time1.hours = 55时,实际上您已经在对象time1中创建了一个名为hours的变量,它与类中定义的变量__hours不一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62111145

复制
相关文章

相似问题

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