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爬虫+数据分析+办公自动化+全栈开发+人工智能+面试真题分享+精选视频

全部评论

相关推荐

12-11 14:24
门头沟学院 Java
牛客35720396...:不要用boss,全是骗
点赞 评论 收藏
分享
专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
12-24 20:46
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务