Python4.1
类:
什么是面向对象:
所谓的面向对象,其实就是说:站在上帝的视角下,世界万物一切皆有对象,把拥有共同属性归为一类,这就是class的由来
类的定义:
关键字:class
类的名称首字母必须是大写的
类里面有哪些东西:
1、属性
2、方法(其实就是之前学习过的函数)
类里面的属性以及方法,调用的前提是首先要对类进行实例化处理
调用方法执行顺序:
1、执行构造方法:
def __init__(self):
2、执行真正的调用方法
3、执行析构方法
def __del__(self):
方法(methed)分三种:
1、普通方法
2、特性方法,只具备只读属性,不能写(这个方法里面不能有形式参数),调用方法的时候没有括号--getInfo
3、静态方法:理解为全局变量,但是不能等价于全局变量,静态方法的特点是使用类名来直接调用
# 这个是个函数
def show():
print('hello')
show()
class Person():
# 这个是个方法
# self括号里面是类的本身
def show(self):
print('hello')
# obj是类的对象
obj=Person()
# 对象调用里面的函数
obj.show()
# object 这个是个父类 可以说是类的祖先
class Person(object):
# 数据属性 这个只能通过类或者类的对象来调用
city='西安'
# init 初始化 针对初始化的时候必须要对构造方法里面的实例属性来赋值--可以把括号里面的参数看做是形参
def __init__(self,name,age):
# 实例属性的过程
self.name=name
self.age=age
print('初始化')
# 这个是个方法 self 表示类的本身
def show(self):
print('my name is {0},and my age is {1},city is {2}'.format(self.name,self.age,self.city))
# info 可以针对是上面的
def info(self,sex='女'):
print('我的性别是:{0},and my age is {1},and my name is {2},and city is {3}'.format(sex,self.age,self.name,self.getName()))
def method(self,*args,**kwargs):
print(kwargs)
# 这个是析构方法 价值是清理
def __del__(self):
print('清理')
# 装饰器
@property
def getInfo(self):
print('我的城市:{},我的姓名:{}'.format(self.city,self.name))
@staticmethod
def getName():
return '中国西安'
obj=Person(name='xiaoming',age=18)
obj.show()
obj.info()
obj.method(address='陕西西安',country='中国')
obj.getInfo
print(obj.getName())
# obj
# 1、它是一个变量
# 2、它是类的对象
# 结果对象 就有几个初始化
继承
java与Python的继承区别
1、Python是一个类 可以继承N个类
2、Java只能继承一个类
继承的概念:
1、基类(父类):被继承的类
2、派生类(子类):继承其它的类
子类继承父类,继承了什么?
1、数据属性
2、实例数属性
3、方法
继承的原则:
1、从左到右
2、从下到上 前提的条件:子类重写了父类的方法,那么调用子类共同拥有的方法的时候,优先调用子类自己的方法
class Animal(object):
address='地球'
def __init__(self,name,age):
self.name=name
self.age=age
print('输出初始化')
def show(self):
print('my name is {0},my age is {1}'.format(self.name,self.age))
class Person(Animal):
def __init__(self, name, age, work):
Animal.__init__(self,name,age)
self.work=work
def info(self):
print('来自:{0},信息:{1}'.format(self.address,self.show()))
def show(self):
print('我是子类里面的方法')
obj=Person(name='xiaohua',age='20',work='测试')
obj.show()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」