一、编程思想 1.面向过程 2.面向对象 二、类对象class 1.定义Python中的类 demo1:
# 姓名:薛之芹
# QQ:1120514609
# 开发时间:2021/9/26 16:43
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
pass
#python中一切皆对象 Student是对象么?内存有开空间么?
print(id(Student))
print(type(Student))
print(Student)
输出结果: demo2:
# 姓名:薛之芹
# QQ:1120514609
# 开发时间:2021/9/26 16:53
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,
native_pace='吉林' #直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name=name #self,name称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age = age
#实例方法 eat为方法
def eat(self):
print('学生在吃饭...')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def cm(cls):
print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
#drink为函数
def drink():
print('喝水')
输出结果:
2.对象的创建 demo3:
# 姓名:薛之芹
# QQ:1120514609
# 开发时间:2021/9/26 17:09
#创建Student类
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,
native_pace='吉林' #直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name=name # self,name称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age=age
#实例方法 eat为方法
def eat(self):
print('学生在吃饭...')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def cm(cls):
print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
#drink为函数
def drink():
print('喝水')
#创建Student类的对象
stu1=Student('张三',20)
print(id(stu1))
print(type(stu1))
print(stu1)
print('-------------------------------')
print(id(Student))
print(type(Student))
print(Student)
输出结果: demo4:
# 姓名:薛之芹
# QQ:1120514609
# 开发时间:2021/9/26 17:35
#创建Student类
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,
native_pace='吉林' #直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name=name # self,name称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age=age
#实例方法 eat为方法
def eat(self):
print('学生在吃饭...')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def cm(cls):
print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
#drink为函数
def drink():
print('喝水')
#创建Student类的对象
stu1=Student('张三',20)
stu1.eat() #对象名.方法名()
print(stu1.name)
print(stu1.age)
print('----------------------------')
#与上面stu1.eat()代码功能相同,都是调用Student中的eat方法
Student.eat(stu1) #类名.方法名(类的对象)——>实际上就是定义方法中的self
输出结果:
3.类属性、类方法、静态方法的使用方式 demo5:
# 姓名:薛之芹
# QQ:1120514609
# 开发时间:2021/9/26 20:15
#创建Student类
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,
native_pace='吉林' #直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name=name # self,name称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age=age
#实例方法 eat为方法
def eat(self):
print('学生在吃饭...')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def cm(cls):
print('我是类方法,因为我使用了classmethod进行修饰')
#类属性的使用方式
#print(Student.native_pace)
stu1=Student('张三',20)
stu2=Student('李四',30)
print(stu1.native_pace)
print(stu2.native_pace)
Student.native_pace='天津'
print(stu1.native_pace)
print(stu2.native_pace)
print('--------类方法的使用方式------------')
Student.cm()
print('---------静态方法的使用方式--------')
Student.method()
输出结果:
4.动态绑定属性和方法 demo6:
# 姓名:薛之芹
# QQ:1120514609
# 开发时间:2021/9/26 20:41
#动态绑定属性和方法
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def eat(self):
print(self.name+'在吃饭')
stu1=Student('张三',20)
stu2=Student('李四',30)
print(id(stu1))
print(id(stu2))
print('---------为stu1动态绑定性别属性--------------')
stu1.gender='女'
#print(stu1.name,stu1.age,stu1.gender)
print(stu1.name,stu1.age,stu1.gender)
print(stu2.name,stu2.age)
print('----------------------------------')
stu1.eat()
stu2.eat()
def show():
print('定义在类之外的,称函数')
stu1.show=show
stu1.show()
输出结果:
知识点总结
|