python - 在python中传递来自不同类的值
问题描述
我是python编程的新手。__init__
我现在遇到一个问题,我想将一个类的一些结果作为属性之一调用到另一个类 。这是下面显示的代码:(reduced_data 是向量中的数值数据)
class A:
def __init__(self, k=3, tol=0.0001, max_iter=300):
self.k = k
self.tol = tol
self.max_iter = max_iter
def fit(self, data):
self.centroids = {}
for i in range(self.k):
self.centroids[i] = data[i+50]
for i in range(self.max_iter):
self.classifications = {}
for i in range(self.k):
self.classifications[i] = []
for featureset in data:
distances = [np.linalg.norm(featureset - self.centroids[centroid]) for centroid in self.centroids]
classification = distances.index(min(distances))
self.classifications[classification].append(featureset)
prev_centroids = dict(self.centroids)
for classification in self.classifications:
self.centroids[classification] = np.average(self.classifications[classification], axis=0)
optimized = True
for c in self.centroids:
original_centroid = prev_centroids[c]
current_centroid = self.centroids[c]
if np.sum((current_centroid - original_centroid) / original_centroid * 100.0) > self.tol:
#print(np.sum((current_centroid - original_centroid) / original_centroid * 100.0))
optimized = False
if optimized:
break
def cluster_labels(self,data):
cluster_labels = []
for featureset in data:
distances=[np.linalg.norm(featureset - self.centroids[centroid]) for centroid in self.centroids]
cluster_labels.append(distances.index(min(distances)))
return cluster_labels
class B:
x = np.linalg.norm(reduced_data-[1,1])
k = (x-5)^2
a = A()
a.fit(reduced_data)
y_pred = a.predict(reduced_data)
labels = a.cluster_labels(reduced_data)
基本上,我想将 B 类中的值 k 作为 A 类的属性传递,我该def __init__(self, k=k in class B, tol=0.0001, max_iter=300):
如何实现呢?
解决方案
__init__
您可以在创建该对象的新实例时从方法中传递参数。
即a = A(k)
。
请注意,在 classB
中,代码不在方法内。您可能希望将该代码放在类定义之外。在 Python 中,代码不必在类中。
推荐阅读
- python - 想要从文本或 pdf 文件中提取文本作为不同的段落
- python-3.x - 用于 s3 身份验证的临时 AWS 令牌的 PySpark 问题
- c# - 使用 ASP.NET MVC 中的属性重定向到操作
- ajax - 如何在codeigniter中使用CSRF令牌和数据库中的Ajax Post数据并给出403错误..?
- node.js - 如何在 Postgres for Node 中将复合类型解析为 JSON
- css - 平移背景图像动画
- python - wxPython 仅创建图像工具栏窗口
- ffmpeg - 使用 FFMPEG 批量识别包含图形的图像
- php - 2个带有数组的foreach循环
- python - 通过公司名称列表循环 googlesearch 并为每个公司返回 1 个 url