RicardoM.Lu1 2023-01-05 17:55 采纳率: 82.1%
浏览 72
已结题

在学习python的面向对象时遇到了一个跨类调用的问题

在学习面向对象的跨类调用时遇到了一些问题

```python
class Peason():
    def __init__(self, name):
        self.name = name

    def go_to(self, place, vehice):
        self.place = place
        self.vehice = vehice
        vehice.run()
        print(f"{self.name}驾驶{self.vehice.brand}{self.vehice}{self.place}")


class Car():
    def __init__(self, brand):
        self.brand = brand
    def run(self):
        print("行驶")


lz = Peason("老张")
car = Car("奔驰")

lz.go_to("东北", "车")


######
```python
Traceback (most recent call last):
  File "/home/tarena/month01/day10/exercise2.py", line 55, in <module>
    lz.go_to("东北", "车")
  File "/home/tarena/month01/day10/exercise2.py", line 41, in go_to
    vehice.run()
AttributeError: 'str' object has no attribute 'run'
我尝试过在变量vehice前面加self 但是依然没有解决,还是会报相同的错

######正确赋值,并且能输出我想要的语句

  • 写回答

7条回答 默认 最新

  • cjh4312 2023-01-05 18:15
    关注
    
    class Peason():
        def __init__(self, name):
            self.name = name
            self.car=Car('奔驰')
        def go_to(self, place, vehice):
            self.place = place
            self.vehice = vehice
            self.car.run()
            print(f"{self.name}驾驶{self.car.brand}{self.vehice}{self.place}")
     
     
    class Car():
        def __init__(self, brand):
            self.brand = brand
        def run(self):
            print("行驶")
     
     
    lz = Peason("老张")
    
    lz.go_to("东北", "车")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题