必备常识
硬件组成
进制转换
注释
基本数据类型
变量
整型(int)
浮点型(float)
字符串(str)
列表(list)
元组(tuple)
字典(dict)
集合(set)
流程控制
if 条件语句
for 循环
while 循环
函数
定义和调用
-
定义
- 功能会重复使用、或者代码量较多的时候,定义成函数 - 基本语法 def 函数名(参数列表): 函数体 - 调用 函数名() - 函数定义时不执行函数体,只有当调用函数的时候才会执行。因此,只要符合函 数的定义形式,只要不调用函数,即便函数体内由语法错误或者逻辑错误,运行 程序也不会报错。 # ############################################################ #函数定义与调用 def func1(): print("HelloWorld") func1() #打印HelloWorld #定义不执行,调用才执行 def func2(): pri("HelloWorld") #有语法错误 #func2() #调用时,才报错
-
参数
- 参数就是变量在函数中的特殊称谓,参数根据实际情况定义 - 形式参数(形参):在函数定义的时候,紧跟在函数名后的变量,相当于数学函 数中的自变量,只起到表示的作用,方便在函数体中使用,没有具体的值。 - 实际参数(实参):在函数调用的时候,形式参数被赋值后,叫做实际参数,相 当于数学函数中的自变量被赋予具体的值后的名称。 - 传参:调用函数时,给形式参数赋值的过程。 - 位置参数:传参的一种形式。按照形参的位置顺序,依次传入具体的值。 - 关键字参数:传参的一种形式。直接以变量赋值的形式(变量名 = 变量值)传入 具体的数据,此时可以不遵从形参的位置顺序。但是,位置参数和关键字参数混 用的时候,关键字参数必须写在位置参数的后面。 - 默认参数:定义时被赋值的形参。在定义的时候可以给形参赋初值,可以根据具 体情况,在调用的时候以关键字参数的方式重新给该形参赋值。定义函数时,默 认参数写在普通参数的后面。 - 可变长度参数:特殊的形参,*参数名(一般写成 *args) 和 **参数名(一般写成 **kwargs)。可以接收任意个多余的参数。以位置参数的形式传参的多余参数存 放在元组中,并且元组的名字是args;以关键字参数的形式传入的多余参数存放 到字典中,并且字典的名字是kwargs。 # ############################################################# #位置参数和关键字参数 def add_num(x, y, z): result = x + y + z return result value = add_num(2, 3, 4) # value = add_num(2, z = 4, y = 3) print(value) #默认参数和可变长度参数 def add_anyNum(sumary=0, *args): for index in range(0, len(args)): sumary += args[index] return sumary value = add_anyNum(1,2,3,4,5,6,7) print(value)
-
作用域
常见函数
-
函数的分类
- 根据参数分类 ''' 1. 无参函数:一般应用于不处理数据的情况 2. 有参函数:一般应用于需要处理数据的时候 ''' - 根据函数体分类 ''' 1. 空函数:函数体为pass。一般用于写程序结构的时候,后面再写上具体的 功能 2. 实体函数:普通的函数,定义的时候有具体的功能代码 ''' - 根据返回值分类 ''' 1. 有返回值函数:一般用于处理数据之后返回结果,默认返回None 2. 无返回值参数:一般用于不处理数据的函数中 '''
文件操作
模块
面向对象
面向对象
-
面向对象与面向过程
解决一个问题,可能需要用到多个函数,当函数的个数达到十几个甚至几十个的时候,找起来会非常的麻烦,大大降低了开发的效率。面向对象就是把这些函数归到一类,并且以后再次出现这类问题的时候,能够快速地找到每一步对应的函数;而面向过程中,每次解决同类的问题,程序员需要在一堆函数中,准确地找到目标函数。
-
应用场景
当处理一类问题,要用到多个函数的时候,建议使用面向对象。当然,如果只是为了解决这一个问题,以后不会再处理类似的问题时,没有必要采取面向对象的编程方式。
-
对象和类
- 类:多个函数放到一个地方,这个地方叫做类 - 对象:类里面的所有内容属于谁,谁就是这个类的对象
成员
-
属性
- 属性就是变量在面向对象中的特殊称谓 - 实例属性(实例变量):封装到对象中的变量 - 类变量(类属性):封装到类中的变量
-
方法
- 方法就是函数在面向对象中的特殊称谓 - 所有的方法都属于类 - 实例方法(对象方法):方法必须含有self参数,主要用于处理封装到对象中的 数据,只能通过实例调用。 - 类方法:@classmethod装饰器修饰,self替换为cls参数,主要用于处理类变量 或其他方法。通过类直接调用,对象也可以调用但是不推荐。 - 静态方法:@staticmethod装饰器修饰,一般用不到参数。通过类直接调用,对 象也可以调用但不推荐。 - 属性:@property装饰器修饰,只能由一个self参数,一般会有返回值,只能通 过对象调用,调用的时候不要加括号。 - 特殊方法 ''' 1. __init__(self):初始化方法,实例化对象时自动调用,主要用于 获取对象中封装的数据 2. __new__(self):构造方法,用于创建空对象(实例化对象的时候, 先执行构造方法创建对象,再执行初始化方法) 3. __call__(self):类中定义call方法后,对象加括号执行call方法 4. __str__(self):类中定义str方法后,打印对象的时候执行该方法 5. __dict__(self):将对象中的属性转换为字典形式 6. __enter__(self)__exit__(self,exc_type,exc_val,exc_tb) _:上下文管理。主要用于在类中做文件操作,在类中,定义enter方 法和exit方法,with 类():... 首先执行enter方法,在执行with 类中的方法,最后执行exit中的方法 7. __add__(self):两个对象相加 ''' - 内置函数 ''' 1. issubclass(A, B):判断A是否是B的派生类,基类的基类也满足 2. isinstance(A, B):判断A是否是B的实例,B可以是基类 3. super():找到基类。如果派生类中的方法与基类中的方法名冲突,但是 想要执行基类中的方法,可以super().方法()。如果多个基类中都有, 只找第一个。 ''' class Student(object): identity = "person" # 1.实例方法(绑定方法) def get_information(self, name, age, height, weight): self.name = name self.age = age self.height = height self.weight = weight # 2.类方法 @classmethod def change_identity(cls): cls.identity = "student" # 3.静态方法 @staticmethod def who_is(): print("I am a boy.") # 4.属性 @property def bmi(self): result = float(self.height) / float(self.weight) return result brank = Student() brank.get_information("BrankYeen", 18, 1.70, 70) Student.change_identity() print(Student.identity) Student.who_is() print(brank.bmi) # ############################################################## class Student(object): # 初始化方法 def __init__(self, name , age): self.name = name self.age = age # str方法 def __str__(self): return "这是一个Student类的对象" # call方法 def __call__(self): print(f"{self.name}的年龄是{self.age}") brank = Student("BrankYeen", 18) brank() print(brank) # ############################################################ class Person(object): def func(self): print("Person.func") class Student(Person): def func(self): super().func() print("Student.func") brank = Student() print(isinstance(brank, Student)) print(isinstance(brank, Person)) print(issubclass(Student, Person)) brank.func()
-
成员修饰符
- 无论是方法还是属性,都可以分为公有和私有。公有的成员可以在外部进行访 问,而私有的成员只能在类的内部进行使用。 - 可以在类中的定义方法,将私有成员作为返回值,此时就可以在外部访问到私有 成员;也可以直接调用内置方法:对象._类名__私有成员 class Student(object): __identity = "student" def private_attribute(self): return Student.__identity brank = Student() print(brank._Student__identity) print(brank.private_attribute())
三大特征
-
封装
-
继承
- 如果一个类想要用另一个类中的方法,则需要继承该类;继承一个类叫做单继 承,继承多个类叫做多继承,继承的顺序决定了基类的优先级。 - 被继承的类叫做基类(父类),需要继承的类叫做派生类(子类)
-
多态
网络编程
并发编程
数据库编程
标签:__,函数,python,self,全栈,开发,参数,Student,print From: https://www.cnblogs.com/yinshaoxin/p/16969202.html