为了账号安全,请及时绑定邮箱和手机立即绑定
  • 通过isinstance()方法,可以判断一个对象是否是某个类型,从某种意义上来讲,通过isinstance()方法,我们获取到了一个对象的一些信息,那有没有别的方法可以获取到对象更多的信息呢?
    答:(1)通过type()函数,可以获得变量的类型

           (2)通过dir()方法,可以获取变量的所有属性

            dir列出的属性中,有很多是以下划线开头和结尾的,这些都是特殊的方法,称为内建方法,在后面,我们还会学习这些方法。

            对于自定义对象的实例变量,dir()返回所有实例属性,包括__class__这类有特殊意义的属性。注意到方法who也是p的一个属性。

            dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了。

    getattr(p, 'name') # 获取name属性
    setattr(p, 'name', 'Adam') # 设置新的name属性
    # 但是属性不存在,报错:AttributeError: 'Person' object has no attribute 'age'
    getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20
    #任务:
    # coding=utf-8
    # 希望除了name和gender外,可以提供任意额外的关键字参数,并绑定到实例,请修改 Person 的__init__()定义,完成该功能。
    # **kwargs 可变关键字参数,字典形式(k-v)
    class Person(object):
        def __init__(self, name, gender, **kwargs):
            self.name = name
            self.gender = gender
            for k, v in kwargs.items():
                setattr(self, k, v)
                
    # 实例1:      
    p1 = Person('莲华', '男', age = 24, work = '巫师')
    tamplate1 = '我叫{n},性别{g},{a}岁,任职{w}'
    str1 = tamplate1.format(n = p1.name, g = p1.gender, a = p1.age, w = p1.work)
    print(str1)
    # 实例2:
    p2 = Person('裘葵', '女', blood = 30000, work = '战士')
    tamplate2 = '我叫{n},性别{g},任职{w},血量{b}'
    str2 = tamplate2.format(n = p2.name, g = p2.gender, b = p2.blood, w = p2.work)
    print(str2)
    查看全部
  • Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx

    查看全部
    4 采集 收起 来源:Python继承类

    2021-08-17

  • 函数作为参数输入时候不要输入(),只需要输入函数名就可以

    查看全部
  • 属性也可以和普通变量一样进行运算。
    查看全部
  •  

    类属性和实例属性要是开头有“__”的时候,就是私有属性,类私有属性和实例私有属性,都不可以通过XXX.__类属性名(__实例属性名)来进行访问。

    外部操作私有属性:通过定义类或者实例方法

    查看全部
  • 你好,这是必应。😊

    sys.path是Python的一个列表,用于存储模块的搜索路径。当你使用import语句导入模块时,Python会在sys.path中列出的路径中查找相应的模块。要使用sys.path增加路径,你可以使用sys.path.append()函数,将新的路径添加到列表的末尾。

    例如,如果你想要导入当前目录上级目录的包,你可以在你的代码中写:

    import sys
    sys.path.append('../') # 添加上级目录的路径import package # 导入上级目录的包

    复制

    这样,Python就可以在上级目录中找到package这个包,并导入它。需要注意的是,这种方法只对当前会话有效,如果你重启Python解释器,sys.path会恢复到默认值。如果你想要永久增加路径,你可以修改PYTHONPATH环境变量,或者创建一个.pth文件放在site-packages目录下。

    希望这能帮助你理解如何使用sys.path增加路径。如果你还有其他问题,欢迎继续提问。😊

    查看全部
  • 文件对象提供readlines()方法,可以读取多行字符,返回一个列表。它提供一个hint参数,表示指定读取的字节数,没有指定则默认以列表的形式返回文件所有的字符串。

    课件应该有问题,指定的是字节数,而不是行数

    查看全部
  • #闭包
    def outer():
       name="python"
       def inner(): # outer函数内部定义的函数
           return name
       return inner # 返回该内部函数
    print(outer()())
    #此时执行外层函数outer(),返回的是内层函数的函数引用(函数名称)--inner,
    # 想要执行内层函数,需要在outer()后边再加个括号,即outer()(),才会让内层函数执行。

    查看全部
    1 采集 收起 来源:Python返回函数

    2022-02-24

  • import socket
    socket.socket()


    服务端

    .bind()绑定ip、端口

    .listen()监听

    .recv()接收

    .send()发送

    客户端

    .connect()连接服务端的ip和端口

    .send()发送

    .recv()接收



    发送和接收信息,是两端都可以有的功能,两端都需要建立socket后,才能进行后续操作


    变量名1 = socket.socket()

    #这是新建socket


    变量名1.bind(‘ip地址',端口)

    #这是绑定ip和端口,ip地址是字符串,端口是数字


    变量名1.listen()

    #这是监听连接


    变量名2,addr = 变量名1.accept()

    #这里是调用了socket的accept()函数,接受连接,并且把接受的连接命名为变量名2,括号内不能有参数


    变量名3 = 变量名2.recv(1024)

    #把在连接里收到的内容存在变量名3中


    变量名1.send()

    #这是发送数据的函数

    查看全部

  • 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

  • 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)

    查看全部
  • seek()方法在a+追加读写的方式,如果在r的方式中,文件游标直接在首部位置

    查看全部
    • 只要重写了 __str__()方法,不管是打印对象还是打印对象的字符串格式,其调用的都是 __str__()方法,所以显示的都是重写的__str__()结果。也就是说,print(str(obj)) 和 print(obj) 是一样的。

    • 而只有在控制台(window下的cmd,命令提示符)中,在python环境下直接输入(不是打印)obj,回车,调用的才是 __repr__()方法。如果没有重写该方法,还是会显示对象所在的地址。

    查看全部
  • # Enter a code

    class person(object):

        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

    p= person('ok','male')

    s =student('BN','male',88)

    t = teacher('alice','female','english')

    print (p.who())


    print(s.who())

    print (t.who())

    class skm(object):

        def __init__(self,name):

            self.name = name

        def who(self):

            return ' i can paluy'

    class baskm(skm,student):

        def __init__(self,name,course):

            super(baskm,self).__init__(name)

            self.course = course

        def who(self):

              return ' yes, i am student, i can play '+self.course

    class fbskm(skm,student):

        def __init__(self,name,gender,course):

            super(baskm,self).__init__(name,gender,course)

            self.course = course

        def who(self):

            return ' yes, i am student, i can play football!'


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

    print (p1.who())

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

    2021-12-28

  • 对字符串排序时,有时候忽略大小写排序更符合习惯。请利用sorted()高阶函数,实现忽略大小写排序的算法。
    输入:['bob', 'about', 'Zoo', 'Credit']
    输出:['about', 'bob', 'Credit', 'Zoo']



    思路:将元素统一成小写或者大写,再排序



    sorted接受key参数,用来指定排序的字段,key的值是一个函数,接受待排序列表的元素作为参数,并返回对应需要排序的字段。

    sorted(需要排序的内容,key,reverse = True(降序)/False(升序))

    用key的内容来排序,然后一一对应到需要排序的内容予以排序。

    l5 = ['bob', 'about', 'Zoo', 'Credit']

    def name1(item):
        return item.upper()

    print(sorted(l5,key = name1))

    key的内容是l5经过函数后的内容['BOB', 'ABOUT', 'ZOO', 'CREDIT'],

    对key进行排序,得到['ABOUT', 'BOB', 'CREDIT','ZOO'],

    逐一对应给实际要排序的内容['bob', 'about', 'Zoo', 'Credit']进行排序。

    查看全部
首页上一页1234567下一页尾页

举报

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

微信扫码,参与3人拼团

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

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