__init__

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a6864657/article/details/81268845

init方法

__init__()方法,在创建一个对象时默认被调用,不需要手动调用
__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去

在类内部获取 属性 和 实例方法,通过self获取;
在类外部获取 属性 和 实例方法,通过对象名获取。

如果一个类有多个对象,每个对象的属性是各自保存的,都有各自独立的地址;
但是实例方法是所有对象共享的,只占用一份内存空间。类会通过self来判断是哪个对象调用了实例方法。
class Cat:
    # 创建init方法      参数
    def __init__(self, name, age):
        self.name = name(增加实例)
        self.age = age
    # 对init方法调用
    def __str__(self):
        return "%s的年龄%d" % (self.name, self.age)
    # 创建方法
    def sing(self):
        print("猫在唱歌")
    def dance(self):
        print("猫在跳舞")
# 创建对象
tom = Cat("老王的猫", 40)
# 调用对象中的方法
tom.sing()
tom.dance()
print(tom)


#输出结果
猫在唱歌
猫在跳舞
老王的猫的年龄7

1__init__ 监听对象创建完成 增加属性
用于初始化一个实例,控制这个初始化的过程 实例级别的方法
2. str 监听打印对象 return “返回值可以返回字符串”
3.new 通常用于控制生成一个新实例的过程。 类级别的方法

1.创建对象 2.调用init方法 3.返回对象的引用

class House(object):

    #初始化对象.` __init__() 方法,用来做变量初始化 或 赋值 操作`
    #创建完对象后会自动被调用
    def __init__(self, new_name, new_age):
        print('-------------------------------------')
        self.name = new_name   #实例变量
        self.age = new_age

    def introduce(self):
        #实例方法
        print('%s的年龄:%d' % (self.name, self.age))
        #通过那个对象调用哪个方法,此事self指向哪个对象


    # 对init方法调用
    #方法需要 return 一个数据,并且只有self一个参数,当在类的外部 print(对象) 则打印这个数据
    #def __str__(self):
        #return "%s的年龄%d" % (self.name, self.age)



# 创建一个对象 # 给赤兔添加两个属性
chitu = House('chitu', 30)

#调用对象指向方法
chitu.introduce()

# 如果没有__str__ 则默认打印 对象在内存的地址。
# 当类的实例化对象 拥有 __str__ 方法后,那么打印对象则打印 __str__ 的返回值。
#print(chitu)

#创建对象, 的卢添加两个属性
dilu = House('dilu', 88)
dilu.introduce()

#print(dilu)

输出结果

-------------------------------------
chitu的年龄:30
-------------------------------------
dilu的年龄:88

这里写图片描述

str()方法

当使用print输出对象的时候,默认打印对象的内存地址。
如果类定义了__str__(self)方法,那么就会打印从在这个方法中 return 的数据
__str__方法通常返回一个字符串,作为这个对象的描述信息

猜你喜欢

转载自blog.csdn.net/a6864657/article/details/81268845