构造函数

__init__
self.name = name #属性,成员变量,字段
def sayhi() #方法,动态属性

公有属性

在类中直接定义的属性,大家都可以用

私有属性

__两个下划线定义,外部不可以访问,内部可以访问
class Role(object):
    nationality = "China" #公有属性
    def __init__(self, name, role, weapon, life_value=100, money=15000):
    self.name = name
    self.role = role
    self.weapon = weapon
    self.life_value = life_value
    self.money = money
    self.__heart = "正常"
def shot(self):
    print("%s is shooting..." % self.name)
def got_shot(self):
    print("ah...,%s got shot..." %self.name)
self.__heart = 'Die' #私有属性
    print(self.name,self.__heart)
def get_heart(self):#对外部提供的只读访问接口
    return self.__heart
def buy_gun(self, gun_name):
    print("%s just bought %s" % (self.name, gun_name))
    self.weapon = gun_name
    
r1 = Role('Hunter', 'police', 'AK47') #生成一个角色
r2 = Role('Jack', 'terrorist', 'B22')  #生成一个角色
Role.nationality = "USA" #更改类的公有属性
r1.nationality = "US" #更改自己的公有属性值
print(r1.name)
print(r1.get_heart())
r1.got_shot()
r1._Role__heart#强制访问私有属性

返回:
Hunter
正常
ah...,Hunter got shot...
Hunter Die

析构方法

def _del_(self):
    print("del……run……")
del r1
import time 
time.sleep(5)

返回:
del……run……
ps:当内存被人工释放时执行程序断,适用类似于程序退出后,然后执行的一些类似关闭端口服务等收尾工作。

正文到此结束

本文标题:Python面向对象-类的特性及公私有属性

本文链接:https://www.hantaosec.com/617.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源及链接,不带链接禁止任何转载!访问任何网络安全相关文章,则视为默认接受网络安全文章免责声明 ,请认真阅读。

喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。