python ----魔术方法和私有属性

继续接着上次给大家写的往下分享

魔术方法:特点是以__开头和结尾

lass People(object):
    # __init__,构造函数(初始化函数),属于魔术方法的一种
    # 通常用于初始化属性值或配置一些东西
    def __init__(self, name="", age=0):
        print("对象被创建")
        self.name = name
        self.age = age

    # __del__,析构函数,属于魔术方法的一种
    # 通常用于删除某些数据/释放某些资源
    # del = delete
    def __del__(self):
        print("对象被释放(删除)了")

    # 属于魔术方法的一种
    def __str__(self):
        return "{}-{}".format(self.name, self.age)

    def eat(self):
        print("{}在吃饭".format(self.name))

p = People()
print(p) # <__main__.People object at 0x0024B4B0>
print("hell world")
p.name = "zhangsan"
del p # 通过del关键字可以强制删除某个变量
print("hello world")



# 如何统计一个类创建出了几个对象?
# 对象属性: 对象.属性, 对象跟对象之间的对象属性互不影响
# 类属性:  类名.属性, 类属性是所有对象可以通过类名.属性来操作的属性
class Dog(object):
    # 在类中声明的属性是类属性
    count = 0
    def __init__(self):
        # 在这里声明的属性是对象属性  self.属性名 = 值
        Dog.count += 1
        print("创建一个dog")

d1 = Dog()
d2 = Dog()
d3 = Dog()
print(Dog.count)

私有属性

1.对象属性中,凡是带有下划线的_,都是不希望外部使用(道德上)

2.但并不是说我们完全不能使用

3.如果加的是单下划线——可以通过p1._name='小张'

4.如果加的是下划线,可以通过p1._people_name 这种方式

# 如果有这个属性 则修改属性值
# 如果没有这个属性 则添加
p.girlFriend = '小美'
print(p.girlFriend)

class People(object):
    def __init__(self , name='' ,sex='' ,age='16' ,fond='学习'):
        self.name = name
        self._sex = sex
        self.__age = age
        self.__fond = fond
    # get set方法
    @property
    def fond(self):
        print('fond被get了')
        return self.__fond
    fond.setter
    def fond(self , fond):
        print('fond被set了')
        self.__fond = fond
p = People()
p.name = '张三'
print(p.name)
p._sex = '男'
# __age
print(p._People__age)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值