类与对象
'''
类与对象的定义
python中利用class关键字来定义类,一个类中可以定义若干个属性和方法。在类中定义的方法使用def 关键字声明即可
'''
class Member:
'''
定义信息设置方法,该方法需要接受name与age两个参数的内容
'''
def set_info(self,name,age):
'''
:param name: 参数name
:param age: 参数age
:return:
'''
self.name =name
self.age=age
def get_info(self):
'''
获取类中属性内容
:return:
'''
return '姓名:%s\n年龄:%d' %(self.name,self.age)
if __name__ == '__main__':
num=Member()
num.set_info('刘洋',18)
print(num.get_info())
>封装性
'''
面向对象之中属性封装是第一大特性,属性封装之后就不能被外面所访问,可以被内部访问
'''
'''
实例:属性封装与访问
'''
class Member:
def set_name(self,name):
self.__name=name
def set_age(self,age):
self.__age=age
def get_name(self):
return self.__name
def get_age(self):
return self.__age
def main():
men=Member()
men.set_name('小明')
men.set_age(16)
men.name='小陈'
men.age=17
print('姓名:%s\n年龄:%d' %(men.get_name(),men.get_age()))
if __name__ == '__main__':
main()
>>>
姓名:小明
年龄:16
'''
关于封装属性内部操作的问题
'''
class Member:
def set_name(self, name):
self.__name = name
def set_age(self, age):
self.__age = age
def get_name(self):
return self.__name
def get_age(self):
return self.__age
def change_info(self, temp):
temp.__name = '小华'
def __del__(self):
print('资源已释放')
class Member_1:
def change_info(self):
pass
def main():
men = Member()
men.set_name('小明')
men.set_age(16)
men.name = '小陈'
men.age = 17
print('姓名:%s\n年龄:%d' % (men.get_name(), men.get_age()))
men_1 = Member_1()
men.change_info(men_1)
men.change_info(men)
print('姓名:%s\n年龄:%d' % (men.get_name(), men.get_age()))
if __name__ == '__main__':
main()
>继承性
'''
类继承定义
'''
class Person:
def __init__(self):
self.__name = None
self.__age = 0
def set_name(self, name):
self.__name = name
def set_age(self, age):
self.__age = age
def get_name(self):
return self.__name
def get_age(self):
return self.__age
class Student(Person):
pass
def main():
stu = Student()
stu.set_name('v_xianqchen')
stu.set_age(18)
print("姓名:%s 年龄:%d " % (stu.get_name(), stu.get_age()))
if __name__ == '__main__':
main()
'''
子类扩充功能
'''
class Person:
def __init__(self):
self.__name = None
self.__age = 0
def set_name(self, name):
self.__name = name
def set_age(self, age):
self.__age = age
def get_name(self):
return self.__name
def get_age(self):
return self.__age
class Student(Person):
def __init__(self):
self.__school = None
def set_school(self, school):
self.__school = school
def get_school(self):
return self.__school
def main():
stu = Student()
stu.set_name('v_xianqchen')
stu.set_age(18)
stu.set_school('电子科技大学')
print("姓名:%s 年龄:%d 学校:%s" % (stu.get_name(), stu.get_age(), stu.get_school()))
if __name__ == '__main__':
main()
>多态性
'''
多态
'''
'''方法覆写'''
class Channel:
def build(self):
print('【channel】通道连接...')
class Databased(Channel):
def build(self):
print('新的通道开始建立连接')
def main():
cha=Databased()
cha.build()
if __name__ == '__main__':
main()
'''
调用父类覆写过的方法
'''
class Channel:
def build(self):
print('【channel】通道连接...')
class Databased(Channel):
def build(self):
super().build()
print('新的通道开始建立连接')
def main():
cha=Databased()
cha.build()
if __name__ == '__main__':
main()
class Message:
def get_info(self):
return 'www.baidu.com'
class DatabaseMessage(Message):
def get_info(self):
return 'www.tencent.com'
class Channel:
def send(self,msg):
if isinstance(msg,Message) or isinstance(msg,DatabaseMessage):
print(msg.get_info())
def main():
channel = Channel()
channel.send(Message())
channel.send(DatabaseMessage())
if __name__ == '__main__':
main()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现