python小课——零基础入门——学习笔记大数据 爬虫Python AI Sql

Python精简入门学习(十五)

2021-04-15  本文已影响0人  码市冲冲冲

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) # 直接打印输出
上一篇 下一篇

猜你喜欢

热点阅读