为了账号安全,请及时绑定邮箱和手机立即绑定
  • 操作类的私有属性,则应该定义类的方法

    1.类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法

    2.类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion

    查看全部
  • self是一个引用,指向调用该方法的实例对象本身.
    可以通过定义类或者实例的方法来操作私有属性

    查看全部
  • 不能被外部访问的属性称为私有属性。私有属性是以双下划线'__'开头的属性。

    查看全部
  • 如果类属性和实例属性名字相同时,实例属性的优先级是要高于类属性的

    查看全部
  • 类属性有且只有一份,可以动态添加和修改的.

    查看全部
    0 采集 收起 来源:Python类属性

    2022-02-15

  • 在定义  类时,可以为类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:

    class Person(object):
       def __init__(self, name, sex, age):
           self.name = name
           self.sex = sex
           self.age = age

    查看全部

  • class person:

       def __init__(self, name, gender):
           self.name = name

           self.gender = gender

       def who(self):
           return 'i am a person , my name is %s' % self.name


    class student(person):

       def __init__(self, name, gender, score):
           super(student, self).__init__(name, gender)

           self.score = score

       def who(self):
           return 'i am a student, my name is %s' % self.name


    class teacher(person):

       def __init__(self, name, gender, course):
           super(teacher, self).__init__(name, gender)

           self.course = course

       def who(self):
           return 'i am a teacher, my name is %s' % self.name


    class skm:

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

       def who(self):
           return ' i can play'


    class baskm(skm, teacher):

       def __init__(self, name, course):
           super(baskm, self).__init__(name)

           self.course = course

       def who(self):
           return self.name + ' is a teacher,'+ self.name +' can play ' + self.course


    class fbskm(skm, student):

       def __init__(self, name, course):
           super(fbskm, self).__init__(name)

           self.course = course

       def who(self):
           return self.name + ' is a student,'+ self.name +' can play ' + self.course


    p1 = baskm('bob', 'basketball')

    print(p1.who())

    p2 = fbskm('Lily','football')

    print(p2.who())

    查看全部
    1 采集 收起 来源:Python中的多态

    2022-02-12

  • String.capitalize()可以将字符串变为首字母大写,其他小写的规范
    查看全部
  • 客户端和服务端会有一些不一样。
    服务端建立需要四个步骤:新建socket、绑定IP和端口(bind)、监听连接(listen)、接受连接(accept)。
    客户端建立则简单一些,仅需两个步骤:新建socket、连接服务端(connect)。

    查看全部
  • _str__是面向用户的,而__repr__面向程序员,可以理解为:__str__是给用户使用的,而__repr__是提供给程序员用于调试程序用的。

    __str__和__repr__这两个方法都是用于显示的。

    查看全部
  • python实例属性的初始化

    在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:

    class Person(object):
       def __init__(self, name, sex, age):注:(def后需要一个空格,init左右两边都是双下划线)
           self.name = name
           self.sex = sex
           self.age = age

    需要注意的是,__init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。
    定义类后,就可以相应的实例化对象了,在实例化的时候,需要提供除self以外的所有参数。

    xiaoming = Person('Xiao Ming', 'boy', 13)
    xiaohong = Person('Xiao Hong', 'girl', 14)

    而访问这些属性的方式和之前的一样:

    print(xiaohong.name)
    print(xiaohong.sex)
    print(xiaohong.age)
    # 但当访问不存在的属性时,依然会报错

    要特别注意的是,初学者定义__init__()方法常常忘记了 self 参数

    这种情况下,如果还是如下实例化,将会报错。

    查看全部
  • Python实例属性的定义

    虽然前面我们已经通过Person类创建出xiaoming、xiaohong等实例,但是这些实例看上去并没有任何区别。在现实世界中,一个人拥有名字、性别、年龄等等的信息,在Python中,可以通过以下的方式赋予实例这些属性,并且把这些属性打印出来。

    xiaohong.name = 'xiaohong' xiaohong.sex = 'girl' xiaohong.age = 13 print(xiaohong.name) print(xiaohong.sex) print(xiaohong.age)

    除此以外,这些属性也可以和普通变量一样进行运算。比如xiaohong长大了一岁:

    xiaohong.age = xiaohong.age + 1

    查看全部
  • python类的定义与实例化

    通过class关键字定义一个类,比如我们需要定义一个人的类。按照 Python 的编程习惯,类名以大写字母开头。因此可以这样定义:

    class Person:  pass

    注意,在这个Person类的定义里面,并没有继承任何类,除了这样定义以外,还可以有以下两种定义方式。

    class Person(): pass      class Person(object):  pass

    定义了类之后,就可以对类进行实例化了,实例化是指,把抽象的类,赋予实物的过程。比如,定义好Person这个类后,就可以实例化多个Person出来了。
    创建实例使用类名+(),类似函数调用的形式创建:

    class Person(object):  pass xiaohong = Person() xiaoming = Person()

     

    查看全部
  • r1 + r2 就相当于r1.__add__(r2)

    Rational(1, 2)          Rational(2, 3)

                   p q                          p q

    r1 = Rational(1, 2)

    中的(1,2)代入到Rational的__init_中,此时

    即为:self.p = 1

              self.q = 2

     self.p * r.q + self.q * r.p, self.q * r.q

          1  * 3    +   2     * 2 ,    2     *   3

                        (7               ,          6)

    查看全部
  • 装饰器@不好理解

    #funA 作为装饰器函数

    def funA(fn):

    #...

    fn() # 执行传入的fn参数

    #...

    return '...'


    @funA

    def funB():

    #...

    上面程序完全等价于下面的程序:

    def funA(fn):

    #...

    fn() # 执行传入的fn参数

    #...

    return '...'


    def funB():

    #...


    funB = funA(funB)

    通过比对以上 2 段程序不难发现,使用函数装饰器 A() 去装饰另一个函数 B(),其底层执行了如下 2 步操作:

    将 B 作为参数传给 A() 函数;

    将 A() 函数执行完成的返回值反馈回  B。

    查看全部
  • 对于可调用对象,实际上“名称()”可以理解为是“名称.__call__()”的简写

    Python 中,凡是可以将 () 直接应用到自身并执行,都称为可调用对象。可调用对象包括自定义的函数、Python 内置函数以及本节所讲的类实例对象。

    查看全部
  • 官方给的答案不改变原列表中的内容。

    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!