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日

悬赏问题

  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算