Python精简入门学习(十五)
Python精简入门学习之_ init _()
-_ init _()
python自带的内置函数类 使用双下划线 包起来的[魔术方法]。 是一个初始化的方法 用来定义实例属性 和初始化数据的 在创建对象的时候自动调用 不用手动去调用。 利用传参的机制可以让我们定义功能更加强大且方便 类。
class People:
def init(self,name,sex,age): # 这里的self如同Java的this,可看作对象内部持有一个引用。
self.name = name # 这里定义了名字
self.sex = sex # 性别
self.age = age # 年龄
def eat(self,food):
'''
吃的行为
:return:
'''
print(self.name+'喜欢吃'+food)
pass
pass
xm = People()
xm.name = '小明' # 添加实例属性
xm.sex = '男'
xm.age = 11
print(xm.name,xm.sex,xm.age)
如果有n个这个对象 被实例化 那么就需要添加很多次这样的属性可 显然是比较麻烦
zs = People('张三','男',16)
print(zs.name,zs.age)
zs.eat('橘子')
ls = People('李四','女',15)
print(ls.name,ls.age)
ls.eat('菠萝')
**-self**
self只是在类中定义 实例方法的时候才有意义 在调用的时候不必传入相应的参数 而是由解释器 自动去指向。
self的名字是可以更改的 可以定义成其他的名字 只是默认的定义成self。
self 指的是类实例对象本身 相当于java的this。
_ new 和 init 函数的区别。
_ _new 类的实例化方法 必须要返回该实例 否则对象就创建不成功。
_ _init 用来做数据属性初始化工作 也可以认为是实例的构造方法 接受类的实例 self 并对其进行构造。
_ _init 至少有一个参数 cls 代表要实例化的类 此参数在实例化时由python解释器自动提供。
_ _new 函数执行要早于 init _函数。
``````
class Person:
'''
定义类
'''
def init(self,pro,name,food): # 初始化对象
'''
:param pro:专业
:param pro:姓名
:param pro:食物
'''
self.pro = pro
self.name = name
self.food = food
print('------------init----------------')
pass
def eat(a,name,food):
'''
实例方法
:return:
'''
print('a=%s' % id(a))
print('%s喜欢吃%s专业是%s'%(a.name,a.food,a.pro))
pass
def str(self):
'''
打印对象 自定义对象 是内容格式的
:return:
'''
return '%s喜欢吃: %s 专业是: %s'%(self.name,self.food,self.pro)
def new(cls, args, *kwargs):
'''
创建对象实例方法 每调用一次 就会成成一个新的对象 cls 就是class的缩写
场景 可以控制创建对象的一些属性限定 经常用做单例模式的时候来使用
:param args:
:param kwargs:
'''
print('-----------new-------函数的执行--------')
return object.new(cls) # 在这里是真正创建对象实例
pass
pass
xw是一个实例化对象
xw = Person('数据分析','小王','香蕉')
print('xw=%s' % id(xw))
xw.eat('小王','香蕉')
print(xw) # 直接打印输出
```
个人整理好了java和python的资料可免费领取
1.JAVA资源分享:大厂面试解析+架构笔记+进阶学习PDF+精选视频资源
2.Python资源分享:python爬虫+数据分析+办公自动化+全栈开发+人工智能+面试真题分享+精选视频
查看17道真题和解析