gpt4 book ai didi

python对象类型转换

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:39 24 4
gpt4 key购买 nike

我一直在尝试搜索如何在 python 中传递对象引用并将其类型转换为类似于 Java 但无济于事。我不知道这个话题是否存在于此处。

我的麻烦是我必须将对象引用传递给类构造函数。但我不知道如何对对象的引用进行类型转换。在java中虽然我已经完成了这个但是我必须将代码传输到服务器端。

非常感谢, jack

class SearchRectangle:
def __init__(self, lower_left_subgrid_x, lower_left_subgrid_y, rectangle_width, rectangle_height):

self.min_subgrid_x = int(lower_left_subgrid_x)
self.max_subgrid_x = int(self.min_subgrid_x + rectangle_width -1)
self.min_subgrid_y = int(lower_left_subgrid_y)
self.max_subgrid_y = int(self.min_subgrid_y + rectangle_height -1)

...blah



class SearchRectangleMultiGrid:
# parent rectangle should be a SearchRectangle instance
def __init__(self, parent_rectangle):
self.parent_rectangle = SearchRectangle()parent_rectangle



# test codes
test_rect = SearchRectangle(test_subgrid.subgrid_x, test_subgrid.subgrid_y, 18, 18)
print "\n\nTest SearchRectangle";
print test_rect.to_string()
print test_rect.sql_clause

test_rec_multi = SearchRectangleMultiGrid(test_rect)
print "\n\nTest SearchRectangleMulti"
test_rec_multi.parent_rectangle.to_string()

最佳答案

Python 是一种动态类型的语言,因此,强制转换某些内容没有多大意义,除非您特别需要该类型。

在 Python 中,您应该改用 Duck Typing:http://en.wikipedia.org/wiki/Duck_typing

因此,与其尝试将 parent_rectangle 转换为 SearchRectangle(),不如简单地测试 SearchRectangle() 是否具有您需要的属性。

或者,如果您真的想确保始终获得 SearchRectangle(),请像这样使用 isinstance:

if isinstance(parent_rectangle, SearchRectangle):

这对您来说可能是一本好书:http://dirtsimple.org/2004/12/python-is-not-java.html

关于python对象类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4529070/

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