Python入门第15课——类(只读课堂)

    科技2022-07-16  117

    In [1]: #欢迎来到“只读课堂”!

       ...: #今天我来讲一下“类”。

       ...: #“类”涉及的知识量非常非常地多,下面我来举几个例子。

       ...: #“类”其实就是一个类似类别的东西。

       ...:

     

    In [2]: s = 'hello world'

     

    In [3]: s.center(12)

    Out[3]: 'hello world '

     

    In [4]: #它就在一个类里边。

     

    In [5]: class Person:

       ...: der __init___(self, name, age)

    File "<ipython-input-5-7bd7bf48f49b>", line 2

    der __init___(self, name, age)

    ^

    IndentationError: expected an indented block

     

     

    In [6]: #打错了

     

    In [7]: class Person:

       ...:

       ...: def __init___(self, name, age):

       ...: self._name = name

       ...: self.age = age

       ...:

     

    In [8]: #现在我们生成一个person,输入它的年龄和名称。

     

    In [9]: class Person:

       ...:

       ...: def __init__(self, name, age):

       ...: self._name = name

       ...: self.age = age

       ...:

     

    In [10]: p = Person('wong',12)

     

    In [11]: p

    Out[11]: <__main__.Person at 0x4318c50>

     

    In [12]: #还可以去获取它的名字

     

    In [13]: def get_name(self):

        ...: return self._name

        ...:

     

    In [14]: p.get_name()

    ---------------------------------------------------------------------------

    AttributeError Traceback (most recent call last)

    <ipython-input-14-7d2dc20c1c72> in <module>()

    ----> 1 p.get_name()

     

    AttributeError: 'Person' object has no attribute 'get_name'

     

    In [15]: #这里总是报错啊,Spyder就可以的

     

    In [16]: class Person:

        ...: def __init__(self, name, age):

        ...: self._name = name

        ...: self._age = age

        ...: def get_name(self):

        ...: return self._name

        ...:

     

    In [17]: p = Person('li',11)

     

    In [18]: p.get_name()

    Out[18]: 'li'

     

    In [19]: #就是这样用的。

     

    In [20]: #——————————————————————————————————————————————————————————————————————

     

    In [21]: #重命名

     

    In [22]: #我们还是用上面的代码:

     

    In [23]: class Person:

        ...: def __init__(self, name, age):

        ...: self._name = name

        ...: self._age = age

        ...: def get_name(self):

        ...: return self._name

        ...: def rename(self, new_name):

        ...: self._name = new_name

        ...:

     

    In [24]: p.rename('wong lei')

    ---------------------------------------------------------------------------

    AttributeError Traceback (most recent call last)

    <ipython-input-24-6b97cbe2fb6e> in <module>()

    ----> 1 p.rename('wong lei')

     

    AttributeError: 'Person' object has no attribute 'rename'

     

    In [25]: p.get_name()

    Out[25]: 'li'

     

    In [26]: p_2 = Person('li',11)

     

    In [27]: p_2.get_name()

    Out[27]: 'li'

     

    In [28]: #只有这种写法才是规范的,别的写法虽然也可以,但是是非常非常不规范的,而且后面调用的时候也容易产生歧义的。

     

    In [29]: #——————————————————————————————————————————————————————————————————————

     

    In [30]: print("\n本次“只读课堂”的python教程就到这了,欢迎继续收看!\n")

     

    本次“只读课堂”的python教程就到这了,欢迎继续收看!

    Processed: 0.008, SQL: 8