主要课程:

class circle:

    def __init__(self,radius=1):

        self.radius=radius

    def getArea(self):
        return(3.142*self.radius*self.radius)
    def getPerimeter(self):
        return(2*3.142*self.myradius)
    def setradius(self,radius):
        if radius>0:
            self.__radius=radius
    def getRadius(self):
        return self.__radius

使用课程:

from Circle import circle

def main():


    c1=circle()
    c1.radius=-1
    c2=circle(5)
    c3=circle(3)
    print(c1.getArea())
    print(c2.getArea())
    print(c3.getArea())

main()

大家好!

我只是想学习班级基础知识,但却有些麻烦。 希望你们能帮忙。 提前致谢 :)

  1. 什么是私有变量? 我读到了它,人们说它不能在课外访问。 好! 但是这意味着什么呢?
  2. 私人数据是否与DATA HIDING相同?
  3. 究竟什么是自我? 我也读过这个,但是从以前的python答案中无法理解。 从我认为self在课堂上的每个def语句后写的。

再次感谢! 干杯!

===============>>#1 票数:2 已采纳

私人变量/数据隐藏/名称管理

Python没有只能从对象中访问的私有实例变量。 您无法在Python中强制隐藏数据。 按照惯例,Python代码使用单个下划线来表示不被视为公共的名称,但名称仍可在其对象之外访问。 但是,您正在使用名称修改(带有两个前导下划线)。 名称mangling以下列方式替换标识符:

self.__radius成为self._classname__radius如果classnameclassname的名称。

然而,即使是受损的名字也可以在课堂外进行访问。 由于类名称成为属性名称的一部分,因此损坏的名称只会降低名称冲突的可能性。

self 按惯例是我们用于实例的名称。 所以考虑这个课程:

class Circle(object):
    def get_area(self):
        pass

该类是Circle ,我们可以将Circle的实例分配给这样的变量:

c = Circle()  # an instance

现在,如果我们调用get_area方法,我们可以这样做:

c.get_area()  # note the lack of arguments

这相当于以下内容:

Circle.get_area(c)  # instance c is now passed in as the first argument of `get_area`, which our method calls self

然后, self是作为第一个参数传递给方法的实例。

  ask by Newbie translate from so

未解决问题?本站智能推荐: