Python入门之面向对象编程介绍

# '''面向过程的程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式。
#
# 优点是:复杂度的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单)
#
# 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身。
#
# 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等。'''
# # class Person:
# #     def __init__(self):
# #        pass
# #     def talk(self):
# #         print('talk')
# #     def eat(self):
# #         print('eat')
# #
# # person =Person()
# # person.talk()
# # person.eat()
#
# #先定义类
# #类是对象相似数据与功能的集合体
# #注意:类在定义阶段就运行了,会产生类的名称空间
# class Student:
#     stu_school ='gg_university'
#     def tell_info(self):
#         print('查询信息功能')
#     def set_info(self):
#         print('更改数据功能')
#
# #属性访问方法
# #1、数据属性
# #2、方法属性
# #再调用类产生对象
# stu=Student()
# stu.set_info()
#
# # 在程序中,务必保证:先定义(类),后使用(产生对象)
# # PS:
# # 1.
# # 在程序中特征用变量标识,技能用函数标识
# # 2.
# # 因而类中最常见的无非是:变量和函数的定义
#
#
# # 程序中的类
# class OldboyStudent:
#     school = 'oldboy'
#
#     def learn(self):
#         print('is learning')
#
#     def eat(self):
#         print('is eating')
#
#     def sleep(self):
#         print('is sleeping')
#
#     # 注意:
#
# #
# # 1.
# # 类中可以有任意python代码,这些代码在类定义阶段便会执行
# # 2.
# # 因而会产生新的名称空间,用来存放类的变量名与函数名,可以通过OldboyStudent.__dict__查看
# # 3.
# # 对于经典类来说我们可以通过该字典操作类名称空间的名字(新式类有限制),但python为我们提供专门的.语法
# # 4.
# # 点是访问属性的语法,类中定义的名字,都是类的属性
# #
# # # 程序中类的用法
# # .:专门用来访问属性,本质操作的就是__dict__
# OldboyStudent.school  # 等于经典类的操作OldboyStudent.__dict__['school']
# OldboyStudent.school = 'Oldboy'  # 等于经典类的操作OldboyStudent.__dict__['school']='Oldboy'
# OldboyStudent.x = 1  # 等于经典类的操作OldboyStudent.__dict__['x']=1
# del OldboyStudent.x  # 等于经典类的操作OldboyStudent.__dict__.pop('x')
#
# # 程序中的对象
# # 调用类,或称为实例化,得到对象
# s1 = OldboyStudent()
# s2 = OldboyStudent()
# s3 = OldboyStudent()
#
#
# # 如此,s1、s2、s3都一样了,而这三者除了相似的属性之外还各种不同的属性,这就用到了__init__
# # 注意:该方法是在对象产生之后才会执行,只用来为对象进行初始化操作,可以有任意代码,但一定不能有返回值
# class OldboyStudent:
#
#     def __init__(self, name, age, sex):
#         self.name = name
#         self.age = age
#         self.sex = sex
#
#
#
#
# s1 = OldboyStudent('李坦克', '男', 18)  # 先调用类产生空对象s1,然后调用OldboyStudent.__init__(s1,'李坦克','男',18)
# s2 = OldboyStudent('王大炮', '女', 38)
# s3 = OldboyStudent('牛榴弹', '男', 78)
#
# # 程序中对象的用法
# # 执行__init__,s1.name='牛榴弹',很明显也会产生对象的名称空间
# s2.__dict__
# {'name': '王大炮', 'age': '女', 'sex': 38}
#
# s2.name  # s2.__dict__['name']
# s2.name = '王三炮'  # s2.__dict__['name']='王三炮'
# s2.course = 'python'  # s2.__dict__['course']='python'
# del s2.course  # s2.__dict__.pop('course')
# # 复制代码
# # !!!细说__init__方法!!!
#
#
# # 复制代码
#
#
# # 方式一、为对象初始化自己独有的特征
# class People:
#     country = 'China'
#     x = 1
#
#     def run(self):
#         print('----->', self)
#
#
# # 实例化出三个空对象
# obj1 = People()
# obj2 = People()
# obj3 = People()
#
# # 为对象定制自己独有的特征
# obj1.name = 'egon'
# obj1.age = 18
# obj1.sex = 'male'
#
# obj2.name = 'lxx'
# obj2.age = 38
# obj2.sex = 'female'
#
# obj3.name = 'alex'
# obj3.age = 38
# obj3.sex = 'female'
#
#
# # print(obj1.__dict__)
# # print(obj2.__dict__)
# # print(obj3.__dict__)
# # print(People.__dict__)
#
#
# # 方式二、为对象初始化自己独有的特征
# class People:
#     country = 'China'
#     x = 1
#
#     def run(self):
#         print('----->', self)
#
#
# # 实例化出三个空对象
# obj1 = People()
# obj2 = People()
# obj3 = People()
#
#
# # 为对象定制自己独有的特征
# def chu_shi_hua(obj, x, y, z):  # obj=obj1,x='egon',y=18,z='male'
#     obj.name = x
#     obj.age = y
#     obj.sex = z
#
#
# chu_shi_hua(obj1, 'egon', 18, 'male')
# chu_shi_hua(obj2, 'lxx', 38, 'female')
# chu_shi_hua(obj3, 'alex', 38, 'female')
#
#
# # 方式三、为对象初始化自己独有的特征
# class People:
#     country = 'China'
#     x = 1
#
#     def chu_shi_hua(obj, x, y, z):  # obj=obj1,x='egon',y=18,z='male'
#         obj.name = x
#         obj.age = y
#         obj.sex = z
#
#     def run(self):
#         print('----->', self)
#
#
# obj1 = People()
# # print(People.chu_shi_hua)
# People.chu_shi_hua(obj1, 'loky', 18, 'male')
#
# obj2 = People()
# People.chu_shi_hua(obj2, 'lxx', 38, 'female')
#
# obj3 = People()
# People.chu_shi_hua(obj3, 'doky', 38, 'female')
#
#
# # 方式四、为对象初始化自己独有的特征
# class People:
#     country = 'China'
#     x = 1
#
#     def __init__(obj, x, y, z):  # obj=obj1,x='egon',y=18,z='male'
#         obj.name = x
#         obj.age = y
#         obj.sex = z
#
#     def run(self):
#         print('----->', self)
#
#
# obj1 = People('egon', 18, 'male')  # People.__init__(obj1,'egon',18,'male')
# obj2 = People('lxx', 38, 'female')  # People.__init__(obj2,'lxx',38,'female')
# obj3 = People('alex', 38, 'female')  # People.__init__(obj3,'alex',38,'female')
#
#
# # __init__方法
# # 强调:
# #   1、该方法内可以有任意的python代码
# #   2、一定不能有返回值
# class People:
#     country = 'China'
#     x = 1
#
#     def __init__(obj, name, age, sex):  # obj=obj1,x='egon',y=18,z='male'
#         # if type(name) is not str:
#         #     raise TypeError('名字必须是字符串类型')
#         obj.name = name
#         obj.age = age
#         obj.sex = sex
#
#     def run(self):
#         print('----->', self)
#
#
# # obj1=People('egon',18,'male')
# obj1 = People(3537, 18, 'male')
#
# # print(obj1.run)
# # obj1.run() #People.run(obj1)
# # print(People.run)

# 练习
class Student:
    def __init__(self, name, no, age, sex):
        self.name = name
        self.no = no
        self.age = age
        self.sex =sex
    def check_student_text(self):
        print(f'姓名{self.name},学号{self.no},年龄{self.age},性别{self.sex}')
    def alter_student_mes(self,x,y,z,k):
        self.x =x
        self.y =y
        self.z= z
        self.k=k
        print(f'修改后的学生信息为:姓名{x},学号{y},年龄{z},性别{k}')

stu1=Student('loky',2020120801114,18,'male')
stu1.check_student_text()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值