类对象;私有变量

#类及对象
class Critter (object):
    """A virtual pet"""
    def talk(self):
        print("Hi,I'm instance of class Critter.")
        
crit = Critter()
crit.talk()
Hi,I'm instance of class Critter.
#构造器—自动调用
class Critter(object):
    """A virtual pet"""
    def __init__(self):  
        print("A new critter has been born!")
        
    def talk(self):
        print("\nHi,I'm an instance of class Critter")

crit1 = Critter()
crit2 = Critter()

crit1.talk()
crit2.talk()
A new critter has been born!
A new critter has been born!

Hi,I'm an instance of class Critter

Hi,I'm an instance of class Critter
#创建对象和访问对象的特性
class Critter(object):
    """A virtual pet"""
    def __init__(self,name):
        print("A new citter has been born!")
        self.name = name
    def __str__(self):
        rep = "Critter object\n"
        rep += "name:"+self.name+"\n"
        return rep
    def talk(self):
        print("Hi,I'm",self.name,"\n")
    
crit1 = Critter("poochie")
crit1.talk()

crit2 = Critter("randolph")
crit2.talk()

print("Printing crit1:")
print(crit1)
A new citter has been born!
Hi,I'm poochie 

A new citter has been born!
Hi,I'm randolph 

Printing crit1:
Critter object
name:poochie
#类特性和静态方法
class Critter(object):
    """A virtual pet"""
    total = 0
    
    @staticmethod
    def status():
        print("\nThe total number of critters is",Critter.total)
        
    def __init__(self,name):
        print("A critter has been born!")
        self.name = name
        Critter.total +=1
        
print("Accessing the class attribute Critter.total:",end=" ")
print(Critter.total)
print("\nCreating critters.")
crit1 = Critter("critter1")
crit2 = Critter("critter2")
crit3 = Critter("critter3")

Critter.status()

print("\nAccessing the class attribute through an object:",end=" ")
print(crit1.total)
Accessing the class attribute Critter.total: 0

Creating critters.
A critter has been born!
A critter has been born!
A critter has been born!

The total number of critters is 3

Accessing the class attribute through an object: 3
#私有变量和方法,不给客户端直接调用
class Critter(object):
    """A virtual pet"""
    def __init__(self,name,mood):
        print("A new critter has been born!")
        self.name = name
        self.__mood = mood
    def talk(self):
        print("\nI'm",self.name)
        print("right now i feel",self.__mood,"\n")
    def __private_method(self):
        print("This is a private method.")
    def public_method(self):
        print("This is a public method.")
        self.__private_method()
        
crit = Critter(name = "Poochie",mood = "happy")
crit.talk()
crit._Critter__private_method()
crit.public_method()
#crit.mood:报错,只能通过类来访问私有变量方法

A new critter has been born!

I'm Poochie
right now i feel happy 

This is a private method.
This is a public method.
This is a private method.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值