目录
3.7 内置函数
3.8 面向对象
3.8.1 面向对象介绍
3.8.2 类和对象
3.8.2.1 类的组成部分
3.8.2.2 定义类和对象
3.8.2.3 实例方法和属性
3.8.2.4 init方法
3.8.2.5 理解self
3.8.2.6 self传参问题
3.8.3 魔术方法
3.7 内置函数
内置函数就是Python安装后就自带的函数,我们可以直接去调用的函数。
本章节具体内容在下面官网中。
-
官方文档地址内置函数 — Python 3.8.12 文档
3.8 面向对象
3.8.1 面向对象介绍
-
面向过程:根据业务逻辑从上到下写代码
-
函数式:将某功能代码封装到函数中,日后便无需重复编写,仅需要调用函数即可
-
面向对象编程:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程
3.8.2 类和对象
-
类是具有一组相同相似特征【属性】和行为【方法】的一系列对象的结果
-
对象则是根据模板创建的实例,通过实例化对象可以执行类中的函数
3.8.2.1 类的组成部分
-
类(class)有三部分组成
-
类的名称
-
类的属性
-
类的方法:允许进行的操作和方法
3.8.2.2 定义类和对象
#定义一个类
#class 类名:
# 属性
# 方法
class Person:
name = "Rany" #属性
age = 19 #属性
sex = "男" #属性
#方法1
def eat(self):
print("今天吃麻辣香锅")
pass
#方法2
def sing(self):
print("飞")
#格式:对象名 = 类名()
class Person:
name = "Rany"
age = 19
sex = "男"
def eat(self):
print("今天吃麻辣香锅")
pass
def sing(self):
print("飞")
#创建一个对象
#格式:对象名 = 类名()
#创建一个duixiang对象,对象可以访问属性,调用方法。
ex=Person() #创建对象
ex.eat() #调用eat方法
print(ex.sing())
print("{}的年龄是{},性别是{}".format(ex.name,ex.age,ex.sex))
3.8.2.3 实例方法和属性
-
在类的内部,使用def关键字可以定义一个实例方法,与一般函数不同,类方法必须包含参数 self ,且为第一个参数。
-
实例发给发归于类的实例所有。
class Animal(object):
#实例方法,使用def关键字来定义,第一个形参传实例对象本身,一般使用self作为第一个参数
def test(self):
print("我是一个实例方法")
pass
#一个类中可以有多个实例方法
def show(self):
print("Animal.show")
pass
pass
-
属性:在类里面定义的变量【类属性】
-
定义在方法里面使用self引用的属性称之为 实例属性【self.变量名 = 名称】
class Animal(object): #定义一个类
color = "黑色" #类属性
def __init__(self):
self.name = "haha" #实例属性
pass
pass
3.8.2.4 init方法
-
init(self)方法,初始化方法,实例化方法,实例化对象的时候自动调用,完成一些初始化设置。
-
__ init __(self)方法,在创建一个对象时默认被调用,不需要手动调用
-
利用传参的机制,可以让我们定义功能更加强大,并且方便的类
3.8.2.5 理解self
-
面向过程:根据业务逻辑从上到下写代码
-
函数式:将某功能代码封装到函数中,日后便无需重复编写,仅需要调用函数即可
-
面向对象编程:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程
3.8.2 类和对象
-
类是具有一组相同相似特征【属性】和行为【方法】的一系列对象的结果
-
对象则是根据模板创建的实例,通过实例化对象可以执行类中的函数
3.8.2.1 类的组成部分
-
类(class)有三部分组成
-
类的名称
-
类的属性
-
类的方法:允许进行的操作和方法
3.8.2.2 定义类和对象
#定义一个类
#class 类名:
# 属性
# 方法
class Person:
name = "Rany" #属性
age = 19 #属性
sex = "男" #属性
#方法1
def eat(self):
print("今天吃麻辣香锅")
pass
#方法2
def sing(self):
print("飞")
#格式:对象名 = 类名()
class Person:
name = "Rany"
age = 19
sex = "男"
def eat(self):
print("今天吃麻辣香锅")
pass
def sing(self):
print("飞")
#创建一个对象
#格式:对象名 = 类名()
#创建一个duixiang对象,对象可以访问属性,调用方法。
ex=Person() #创建对象
ex.eat() #调用eat方法
print(ex.sing())
print("{}的年龄是{},性别是{}".format(ex.name,ex.age,ex.sex))
3.8.2.3 实例方法和属性
-
在类的内部,使用def关键字可以定义一个实例方法,与一般函数不同,类方法必须包含参数 self ,且为第一个参数。
-
实例发给发归于类的实例所有。
class Animal(object):
#实例方法,使用def关键字来定义,第一个形参传实例对象本身,一般使用self作为第一个参数
def test(self):
print("我是一个实例方法")
pass
#一个类中可以有多个实例方法
def show(self):
print("Animal.show")
pass
pass
-
属性:在类里面定义的变量【类属性】
-
定义在方法里面使用self引用的属性称之为 实例属性【self.变量名 = 名称】
class Animal(object): #定义一个类
color = "黑色" #类属性
def __init__(self):
self.name = "haha" #实例属性
pass
pass
3.8.2.4 init方法
-
init(self)方法,初始化方法,实例化方法,实例化对象的时候自动调用,完成一些初始化设置。
-
__ init __(self)方法,在创建一个对象时默认被调用,不需要手动调用
-
利用传参的机制,可以让我们定义功能更加强大,并且方便的类
3.8.2.5 理解self
类是具有一组相同相似特征【属性】和行为【方法】的一系列对象的结果
对象则是根据模板创建的实例,通过实例化对象可以执行类中的函数
-
类(class)有三部分组成
-
类的名称
-
类的属性
-
类的方法:允许进行的操作和方法
-
3.8.2.2 定义类和对象
#定义一个类
#class 类名:
# 属性
# 方法
class Person:
name = "Rany" #属性
age = 19 #属性
sex = "男" #属性
#方法1
def eat(self):
print("今天吃麻辣香锅")
pass
#方法2
def sing(self):
print("飞")
#格式:对象名 = 类名()
class Person:
name = "Rany"
age = 19
sex = "男"
def eat(self):
print("今天吃麻辣香锅")
pass
def sing(self):
print("飞")
#创建一个对象
#格式:对象名 = 类名()
#创建一个duixiang对象,对象可以访问属性,调用方法。
ex=Person() #创建对象
ex.eat() #调用eat方法
print(ex.sing())
print("{}的年龄是{},性别是{}".format(ex.name,ex.age,ex.sex))
3.8.2.3 实例方法和属性
-
在类的内部,使用def关键字可以定义一个实例方法,与一般函数不同,类方法必须包含参数 self ,且为第一个参数。
-
实例发给发归于类的实例所有。
class Animal(object):
#实例方法,使用def关键字来定义,第一个形参传实例对象本身,一般使用self作为第一个参数
def test(self):
print("我是一个实例方法")
pass
#一个类中可以有多个实例方法
def show(self):
print("Animal.show")
pass
pass
-
属性:在类里面定义的变量【类属性】
-
定义在方法里面使用self引用的属性称之为 实例属性【self.变量名 = 名称】
class Animal(object): #定义一个类
color = "黑色" #类属性
def __init__(self):
self.name = "haha" #实例属性
pass
pass
3.8.2.4 init方法
-
init(self)方法,初始化方法,实例化方法,实例化对象的时候自动调用,完成一些初始化设置。
-
__ init __(self)方法,在创建一个对象时默认被调用,不需要手动调用
-
利用传参的机制,可以让我们定义功能更加强大,并且方便的类
3.8.2.5 理解self
-
在类的内部,使用def关键字可以定义一个实例方法,与一般函数不同,类方法必须包含参数 self ,且为第一个参数。
-
实例发给发归于类的实例所有。
class Animal(object):
#实例方法,使用def关键字来定义,第一个形参传实例对象本身,一般使用self作为第一个参数
def test(self):
print("我是一个实例方法")
pass
#一个类中可以有多个实例方法
def show(self):
print("Animal.show")
pass
pass
-
属性:在类里面定义的变量【类属性】
-
定义在方法里面使用self引用的属性称之为 实例属性【self.变量名 = 名称】
class Animal(object): #定义一个类 color = "黑色" #类属性 def __init__(self): self.name = "haha" #实例属性 pass pass
3.8.2.4 init方法
-
init(self)方法,初始化方法,实例化方法,实例化对象的时候自动调用,完成一些初始化设置。
-
__ init __(self)方法,在创建一个对象时默认被调用,不需要手动调用
-
利用传参的机制,可以让我们定义功能更加强大,并且方便的类
3.8.2.5 理解self
init(self)方法,初始化方法,实例化方法,实例化对象的时候自动调用,完成一些初始化设置。
__ init __(self)方法,在创建一个对象时默认被调用,不需要手动调用
利用传参的机制,可以让我们定义功能更加强大,并且方便的类
self和对象指向同一个内存地址,可以认为self就是对象的引用。
class Person:
"""
定义类
"""
def eat(self):
"""
实例方法
"""
print("self%s",id(self)) #打印self内存地址
pass
pass
#Rany是一个新的实例化对象
Rany = Person()
print("Rany%s",id(Rany)) #打印Rany内存地址
Rany.eat() #调用eat方法
#结果 Rany%s 2578003235840 self%s 2578003235840 进程已结束,退出代码为 0
3.8.2.6 self传参问题
-
所谓的self,可以理解为对象自己,某个对象调用其方法时,Python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可。
class Person:
"""
定义类
"""
def eat(self,food,name): #第一个参数self,引用food和name参数
"""
实例方法
"""
print("{}喜欢吃{}".format(name,food))
pass
pass
#Rany是一个新的实例化对象
Rany = Person()
Rany.eat("麻辣香锅","rany") #调用eat方法并传入后面两个参数
-
self 只有在类中定义实例方法时才有意义,在调用时不需要传入第一个参数,而是由解释器自动的指向
-
self 的名称时可以更改的
-
self 指的是类实例对象本身,相当于java中的this关键字
3.8.3 魔术方法
所谓的self,可以理解为对象自己,某个对象调用其方法时,Python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可。
self 只有在类中定义实例方法时才有意义,在调用时不需要传入第一个参数,而是由解释器自动的指向
self 的名称时可以更改的
self 指的是类实例对象本身,相当于java中的this关键字
注意:在这--等于Pycharm中 __ 因为作者使用markdown又恰恰是关键字,所以十分抱歉。
-
在Python中,有一些内置好的特点的方法,方法名是“--xxx--”,在进行特定的操作时会自动被调用,这些方法称之为魔术方法。
-
举例
-
--init--方法:初始化一个类,在创建实例对象为其赋值时使用。
-
--str--方法:在将对象转换成字符串 str(对象) 测试的时候,打印对象的信息
-
--new--方法:创建并返回一个实例对象,调用了一次,就会得到一个对象
-
--class--方法:获得一致对象的类(对象--class--)
-
--del--方法:对象在程序运行结束后进行对象销毁的时候调用这个方法,来释放资源
-



