在一个类中怎么调用另一个类中的变量和方法呢?
如下代码
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并不支持