Python类、私有属性和方法

在一个类中怎么调用另一个类中的变量和方法呢?
如下代码

class Gun:
    def __init__(self, model):
        self.model = model
        self.bullet_count = 0

    def add_bullet(self, count):
        self.bullet_count += count

    def shoot(self):
        if self.bullet_count <= 0:
            print("[%s]无子弹了" % self.model)
            return
        else:
            self.bullet_count -= 1
            print("[%s]突突突...[%d]" % (self.model, self.bullet_count))


class Solder:
    def __init__(self, name):
        self.name = name
        self.gun = Ak47.model  # 这个地方可以用外部方法调用另一个类中的变量

    def fire(self):
        if self.gun is None:
            print("[%s]还没有枪" % self.name)
            return
        print("奥利给,冲啊")
        Ak47.add_bullet(50)  # 这个用法好
        # Gun.add_bullet(50)
        Ak47.shoot()


Ak47 = Gun("AK47")
xusanduo = Solder("许三多")
# xusanduo.gun = Ak47
xusanduo.fire()
print(xusanduo.gun)


一个类调用另一个类的变量是用 对象.变量,而调用另一个类的函数是 self.类名.方法名

私有方法和属性是在方法或者变量前加__
但是是有方法和属性并不很私有,知识相对私有,在外部用_类名__方法名/变量名 就可以访问,

class Women:
    def __init__(self, name):
        self.name = name
        self.__age = 18

    def __secret(self):
        print("%s 年龄是 %d" % (self.name, self.__age))


xiaofang = Women("小芳")
xiaofang._Women__secret()
print(xiaofang._Women__age)

在这里插入图片描述
但是pycharm并不支持

猜你喜欢

转载自blog.csdn.net/qq_45156021/article/details/124393425
今日推荐