Tôi muốn tạo một tập lệnh trong Python và sau đó chạy nó từ dòng lệnh. Tập lệnh được gọi là
John Jackson
3 và lệnh để chạy nó là:python3 test.py John Jackson
Đây là đầu ra dự kiến:
John Jackson
Và đây là kịch bản Python tôi đã thực hiện:
class person:
def __init__[self, first, last]:
self.firstname = first
self.lastname = last
def get_first[self]:
return self.firstname
def get_last[self]:
return self.lastname
import argparse
def main[]:
parser = argparse.ArgumentParser[]
parser.add_argument['first']
parser.add_argument['last']
args = parser.parse_args[]
c1 = person[args.first, args.last]
print[c1]
Nhưng vấn đề là khi tôi chạy tập lệnh từ dòng lệnh bằng lệnh được đề cập, nó không trả về không. Bạn có biết làm thế nào để sửa nó và nhận được đầu ra mong đợi?
Gino Mempin
21.8K26 Huy hiệu vàng89 Huy hiệu bạc117 Huy hiệu đồng26 gold badges89 silver badges117 bronze badges
Đã hỏi ngày 18 tháng 5 năm 2019 lúc 12:16May 18, 2019 at 12:16
2
Bạn đã xác định chức năng
John Jackson
4 của bạn nhưng không gọi nó.Thêm cái này ở cuối tập lệnh của bạn:
if __name__ == "__main__":
main[]
Xem
John Jackson
5 làm gì ?.Sau đó,
John Jackson
6 là ví dụ John Jackson
7, sẽ in:$ python3 test.py John Jackson
Bạn cần gọi
John Jackson
8 và John Jackson
9 để có được đầu ra chính xác:print[c1.get_first[], c1.get_last[]]
Đã trả lời ngày 18 tháng 5 năm 2019 lúc 12:24May 18, 2019 at 12:24
Gino Mempingino MempinGino Mempin
21.8K26 Huy hiệu vàng89 Huy hiệu bạc117 Huy hiệu đồng26 gold badges89 silver badges117 bronze badges
Đã hỏi ngày 18 tháng 5 năm 2019 lúc 12:16
Bạn đã xác định chức năng
John Jackson
4 của bạn nhưng không gọi nó.if __name__ == "__main__":
main[]
Thêm cái này ở cuối tập lệnh của bạn:
def __str__[self]:
return self.firstname + ' ' + self.lastname
Xem
John Jackson
5 làm gì ?.import argparse
class person:
def __init__[self, first, last]:
self.firstname = first
self.lastname = last
def get_first[self]:
return self.firstname
def get_last[self]:
return self.lastname
def __str__[self]:
return self.firstname + ' ' + self.lastname
def main[]:
parser = argparse.ArgumentParser[]
parser.add_argument['first']
parser.add_argument['last']
args = parser.parse_args[]
c1 = person[args.first, args.last]
print[c1]
if __name__ == '__main__':
main[]
Sau đó,
John Jackson
6 là ví dụ John Jackson
7, sẽ in:May 18, 2019 at 12:30
Bạn cần gọi
John Jackson
8 và John Jackson
9 để có được đầu ra chính xác:Akhil BatraĐã trả lời ngày 18 tháng 5 năm 2019 lúc 12:244 silver badges16 bronze badges
Gino Mempingino Mempinmuch] simpler way to achieve this is to use the
class person:
def __init__[self, first, last]:
self.firstname = first
self.lastname = last
def get_first[self]:
return self.firstname
def get_last[self]:
return self.lastname
import argparse
def main[]:
parser = argparse.ArgumentParser[]
parser.add_argument['first']
parser.add_argument['last']
args = parser.parse_args[]
c1 = person[args.first, args.last]
print[c1]
2 property of the class person:
def __init__[self, first, last]:
self.firstname = first
self.lastname = last
def get_first[self]:
return self.firstname
def get_last[self]:
return self.lastname
import argparse
def main[]:
parser = argparse.ArgumentParser[]
parser.add_argument['first']
parser.add_argument['last']
args = parser.parse_args[]
c1 = person[args.first, args.last]
print[c1]
3 module then separate the [string] argument using class person:
def __init__[self, first, last]:
self.firstname = first
self.lastname = last
def get_first[self]:
return self.firstname
def get_last[self]:
return self.lastname
import argparse
def main[]:
parser = argparse.ArgumentParser[]
parser.add_argument['first']
parser.add_argument['last']
args = parser.parse_args[]
c1 = person[args.first, args.last]
print[c1]
4, like this:import sys
name = sys.argv[1].split[" "]
if len[name] != 2:
raise ValueError["Invalid first and last name, try using \"John Jackson\" instead."]
[first_name, last_name] = name
print[first_name, last_name]
Tôi không chắc bạn đang gọi chức năng chính của mình trong khi chạy tập lệnh.
John Jackson
0cộng
John Jackson
1Và ghi đè chức năng
class person:
def __init__[self, first, last]:
self.firstname = first
self.lastname = last
def get_first[self]:
return self.firstname
def get_last[self]:
return self.lastname
import argparse
def main[]:
parser = argparse.ArgumentParser[]
parser.add_argument['first']
parser.add_argument['last']
args = parser.parse_args[]
c1 = person[args.first, args.last]
print[c1]
0 của lớp người để in họ và họ trong khi chuyển lớp làm đối số cho class person:
def __init__[self, first, last]:
self.firstname = first
self.lastname = last
def get_first[self]:
return self.firstname
def get_last[self]:
return self.lastname
import argparse
def main[]:
parser = argparse.ArgumentParser[]
parser.add_argument['first']
parser.add_argument['last']
args = parser.parse_args[]
c1 = person[args.first, args.last]
print[c1]
1.John Jackson
Toàn bộ mã diễn ra như thế này
Đã trả lời ngày 18 tháng 5 năm 2019 lúc 12:30May 18, 2019 at 12:27
Akhil Batraakhil BatraMalekai
5614 Huy hiệu bạc16 Huy hiệu Đồng4 gold badges24 silver badges57 bronze badges