gpt4 book ai didi

java - 在Python中使用类对象作为其他类函数的参数

转载 作者:行者123 更新时间:2023-12-02 03:49:13 24 4
gpt4 key购买 nike

我的程序有以下结构-

文件1.py

class A:
index1
def method1():
// --do stuff--

文件2.py

import File1

Class B:
index2
def method2(a) // Needs Object of A as a parameter
// --do stuff--
a.method1() // How can I guarantee that this is an object of class A

文件3.py

import File1
import File2
Class Starter:
def start():
a = A()
b = B()
b.method2(a)

我有几个问题-

  1. 如何确保method2中的参数a是A类的对象?
  2. 这可能是 IDE 特定的,但我可以在编写代码时找到对象“a”的 method2 中可以访问的所有方法和变量吗?
  3. 用 Java 编写这样的面向对象程序比用 Python 编写更好吗?

最佳答案

(1) 如果 method2 的参数确实必须是类 A 的实例,那么您可以使用内置的 isinstance 来验证其类型。然而,Pythonic 方法只是假设任何对象只要公开 B 类想要调用的方法就可以满足要求。这就是 @johnny 所说的“鸭子打字”的意思。

(2) 这通常是 IDE 的事情,但在交互式解释器中,您可以在对象上调用 dir()vars() 来检查其属性。

(3) 这是一个品味问题。 Java 让您确信对象的行为将完全符合预期,但代价是声明类型、接口(interface)、检查异常等。Python 不太相信行为将完全符合预期,但您不需要花费太多时间来构造类型提前划分层次结构。

关于java - 在Python中使用类对象作为其他类函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36021936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com