मैं एक वर्ग के निर्माण के साथ कुछ मुद्दों के लिए आपकी मदद मांगता हूं जो एन-आयामी वैक्टर (योग, डॉट उत्पाद, क्रॉस उत्पाद इत्यादि) के लिए सामान्य संचालन की गणना करता है।
मुझे शुरुआत में ही समस्या है:
class nVector:
''' Our goal is o create a class to work with nD vectors'''
def __init__(self,*args):
'''Construction of the nD vector with n arguments'''
r=[]
'''empty list where the coordinates will be gathered'''
for i,xi in enumerate(args):
self.i=xi
r=r+[xi]
self.r=r
return
मैंने इसे बाद में स्ट्रिंग करने के लिए r सूची का उपयोग किया और प्रिंट करने और कुछ देखने में सक्षम होने के लिए। मुख्य समस्या यह है कि अगर मैं टर्मिनल में self.1 लिखता हूं तो मुझे पहला समन्वय प्राप्त करने की उम्मीद है, self.2 दूसरा और इसी तरह, लेकिन यह त्रुटि लौटा रहा है:
n=nVector(1,1,1,1)
n.1
File "<ipython-input-9-a30c5b21dbaf>", line 1
n.1
^
SyntaxError: invalid syntax
किसी को पता है कि gthis को कैसे ठीक किया जा सकता है?
एक और समस्या यह है कि वेक्टर योग करने के लिए मेरे पास कोई सुराग नहीं है।
आप सभी को धन्यवाद
1 उत्तर
तत्काल समस्या यह है कि "अगर मैं टर्मिनल में स्वयं लिखता हूं तो मुझे पहला समन्वय प्राप्त होने की उम्मीद है"। आपको यह विचार कहां से आया कि यह काम करेगा; यह कानूनी पायथन सिंटैक्स नहीं है। यहां डॉट ऑपरेटर class.attribute
पहुंच के लिए है, और एक पूर्णांक कानूनी विशेषता नाम नहीं है।
मैं सोचता हूं आप जो चाहते हैं वह है n.r[0]
, n.r[1]
, आदि।
आपने जो लिखा है उसे कुछ सरल print
कमांड के साथ ट्रेस करें:
class nVector:
''' Our goal is o create a class to work with nD vectors'''
def __init__(self,*args):
'''Construction of the nD vector with n arguments'''
r=[]
'''empty list where the coordinates will be gathered'''
for i,xi in enumerate(args):
self.i=xi
print("attribute i", self.i)
r=r+[xi]
self.r=r
print("attribute r", self.r)
return
n=nVector(1,2,3,4)
print(n.i)
आउटपुट:
attribute i 1
attribute i 2
attribute i 3
attribute i 4
attribute r [1, 2, 3, 4]
4
क्या यह स्पष्ट करने में मदद करता है कि वर्ग विशेषताएँ कैसे काम करती हैं?
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।