为了账号安全,请及时绑定邮箱和手机立即绑定

Python-面向对象

剑圣OMG Linux系统工程师
难度中级
时长59分
学习人数
综合评分9.13
144人评价 查看评价
9.4 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • if __name__ == '__main__'是什么意思? 答:python中,当打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介绍一下它的作用,模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是也可以像一个标准的程序那样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。 一个.py文件,如果是自身在运行,那么他的__name__值就是"__main__"; 如果它是被别的程序导入的(作为一个模块),比如: import re 那么,他的__name__就不是"__main__"了。 所以,在.py文件中使用这个条件语句,可以使这个条件语句块中的命令只在它独立运行时才执行
    查看全部
  • 定义类的属性 1.直接在类里定义 class Programer(object): sex='male' 会被所有类的对象使用 2.在构造函数里定义 class Programer(object): def __init__(self,name,age): self.name =name self.age = age 3.访问的控制 class Programer(object): def __init__(self,name,age): self.name =name ----->可以公开访问 self._age = age ------>私有属性,还可被对象访问 self.__weight = weight ---->不可被类外访问,可通过实例名._类名__weight访问 4..__dict__#查看对象属性的情况 programer=Programer('Albert',25,80) print programer.__dict__ 打印对象属性发现是{'_age':25,'_Programer__weight':70,'name':'Albert'}
    查看全部
  • 没用过python,但是老师重原理,感觉还是挺不错的
    查看全部
  • 类和运算符 1.利用魔术方法可以使运算符被Python的标准语法支持 2.比较运算符 __cmp__(self,other) 比较 __eq__(self,other) 处理等于 __lt__(self,other) 小于 __gt__(self,other) 大于 3.数字运算符 __add__(self,other) 加 __sub__(self,other) 减 __mul__(self,other) 乘 __div__(self,other) 除 4.逻辑运算符 __or__(self,other) 或 __and__(self,other) 和
    查看全部
  • 函数与方法的区别

    查看全部
    1. 返回一个对象

    2. 获取对象的类型

    查看全部
    1 采集 收起 来源:用Python定义类

    2020-02-12

  • 类,是面向对象的一种表示(封装性)
    类的组成:属性 + 功能
    类的特性:继承、封装、多态
    继承类型(子类从属与父类, 允许扩展): 单重继承, 多重继
    多态: 允许重构功能函数


    查看全部
  • 面向对象的基本单元是对象,数据和功能具有复用性、扩展性、灵活性。


    查看全部
  • 子类可以继承父类的属性,添加属性,覆盖父类的属性,父类不能使用子类 的属性,也能添加,不能覆盖

    查看全部
  • #Python进阶

    Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。

    https://img1.sycdn.imooc.com//5c500fdf0001377009680545.jpg

    https://img1.sycdn.imooc.com//5c5010120001067609560335.jpg

    查看全部
  • @classmethod方法,类似于java的静态方法,直接用类名.方法()调用

    @property方法,把方法看成是类的属性,调用类的实例对象.方法

    查看全部
  • #!/usr/bin/env /python
    #-*- coding: utf-8 -*-
    class Programer(object):
    	hobby = 'Play Computer'
        def __init__(self,name,age,weight):
        		self.name = name 		
        		self._age = age 		
        		self.__weight = weight			
        @classmethod	
        def get_hobby(cls):		
        return cls.hobby			
        @property	
        def get_weight(self):		
        return self.__weight			
        def self_introduction(self):		
        print 'My name is %s \n I am %s years old\n '%(self.nameB,self._age)
    class BackendProgramer(Programer):
    	def __init__(self,name,age,language):
    		super(BackendProgramer,self).__init__(name,age,weight)
    		self.language = language
    if __name__ == '__main__':
    	programer = BackendProgramer('Albert',25,80,'Python')
    		print dir(programer)
    		print programer.__dict__
    		print type(programer)
    		print isinstance(programer,Programer)


    查看全部
    • 设置对象属性:通常不必定义,调用从父类继承的方法

    def __setattr__(self, name, value):
        self.__dict__[name] = value
    • 查询对象属性:

    __getattr__(self, name):访问属性在默认情况下没有被查询到的情况下调用

    __getattribute__(self, name):每次访问属性一定会调用,容易引起无限递归,最好调用父类的getattribute

    • 删除对象属性

    __delattr__(self, name)


    class Programer(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
            
        def __getattribute__(self, name):
            return super(Programer, self).__getattribute__(name)
            
        def __setattr__(self, name, value):
            self.__dict__[name] = value
         
    if __name__ = '__main__':
        p = Programer('Albert', 25)
        print n.name


    查看全部
  • 在print的过程中,将对象转换为字符串,包括三种方法:

    1. __str__:转换成适合人看的字符串

    2. __repr__:转换成适合机器看的字符串

    3. __unicode__

    展现对象属性:__dir__

    class Programer(object):
        def __init__(self, name, age):
            self.name = name
            if isinstance(age, int):
                self.age = age
            else:
                raise Exception('age must be int')
        def __str__(self):
            return '%s is %s years old' % (self.name, self.age)
            
        def __dir__(self):
            return self.__dict__.keys()
            
    if __name__ = '__main__':
        p = Programer('Albert', 25)
        print p
        print dir(p)


    查看全部
  • 构造对象的过程:

    1. 首先调用__new__方法创建类的对象:def __new__(cls),通常不必定义(继承父类,父类会创建类对象),返回一个类的初始对象

    2. 将返回的对象交给__init__,对属性进行设置:def __init__(self)

    class Programer(object):
        def __new__(cls, *args, **kwargs): #改写new方法
            print 'call __new__ method'
            print args
            return super(Programer, self).__new__(cls, *args, **kwargs)
        def __init__(self, name, age):
            print 'call __init__ method'
            self.name = name
            self.age = age
            
    if __name__ = '__main__':
        programer = Programer('Albert', 25)
        print programer.__dict__
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
热爱编程,对Python基础知识已经掌握。
老师告诉你能学到什么?
1.面向对象的理论基础 2.Python基本的面向对象特性 3.深入的了解Python面向对象

微信扫码,参与3人拼团

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

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