Vấn đề: Làm thế nào để trở về từ hàm hoặc phương thức python trong một dòng?: How to return from a Python function or method in single line? Ví dụ: Xem xét tuyên bố mục tiêu của mục tiêu sau đây:: Consider the following “goal” statement: Tuy nhiên, điều này dẫn đến lỗi cú pháp: Trong hướng dẫn này, bạn sẽ học cách viết câu lệnh trả về bằng biểu thức IF trong một dòng mã Python. Bạn có thể nhận được một cái nhìn tổng quan về ba phương thức trong Shell mã tương tác: Bài tập: Mã không có đầu ra. In kết quả của cả ba lần thực thi chức năng cho một x đã cho. Nó luôn luôn giống nhau?: The code has no output. Print the results of all three function executions for a given x. Is it always the same? Hãy cùng đi sâu vào ba phương pháp. Phương pháp sau đây là cách tiêu chuẩn và pythonic nhất để thực hiện điều này nhưng sử dụng nhiều dòng: Nhưng làm thế nào để viết điều này như một lớp lót?def f[x]:
return None if x == 0
Phương pháp 1: Là một người nhiều người
def f[x]:
if x==0:
return None
Phương pháp 2: trực tiếp một lớp lót nếu
Không có gì đơn giản hơn điều đó chỉ cần viết nó vào một dòng duy nhất!
def f[x]: if x==0: return None
Tôi nên lưu ý rằng PEP 8 thực sự tốt với việc viết nếu các câu lệnh khối thành một dòng. Tuy nhiên, giá trị trả về mặc định của một hàm là None
vì vậy mã thực sự không có gì.
Phương pháp 3: Toán tử Ternary
Nếu bạn tìm kiếm một cái gì đó Pythonic hơn, bạn có thể kiểm tra toán tử ternary [còn được gọi là biểu thức có điều kiện của Hồi giáo]:
def f[x]: return None if x==0 else 42
Trong trường hợp này, bạn cũng phải xác định giá trị trả về cho giá trị 42. Bạn nên đọc câu lệnh như thế này:
return [None if x == 0 else 42]
Câu lệnh bên trong dấu ngoặc đơn trả về None
hoặc ________ 8, tùy thuộc vào điều kiện x == 0
. Nếu đó là
def f[x]: if x==0: return None0, giá trị
None
được trả về. Nếu đó là def f[x]: if x==0: return None2, giá trị 42 được trả về.
Đi đâu từ đây?
Đủ lý thuyết. Hãy để có được một số thực hành!
Các lập trình viên được trả tiền sáu con số và hơn thế nữa vì họ có thể giải quyết các vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa.
Để trở nên thành công hơn trong việc mã hóa, giải quyết nhiều vấn đề thực sự hơn cho người thực. Đó là cách bạn đánh bóng các kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, những gì mà việc sử dụng lý thuyết học tập mà không ai cần?
Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế!
Bạn có muốn ngừng học hỏi với các dự án đồ chơi và tập trung vào các dự án mã thực tế kiếm tiền cho bạn và giải quyết các vấn đề thực sự cho mọi người?
Nếu câu trả lời của bạn là có !, Hãy xem xét việc trở thành một nhà phát triển tự do Python! Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện các kỹ năng trăn của bạn, ngay cả khi bạn là người mới bắt đầu hoàn toàn.YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi Làm thế nào để xây dựng kỹ năng thu nhập cao của bạn Python và tìm hiểu cách tôi phát triển kinh doanh mã hóa của mình trực tuyến và làm thế nào bạn có thể, từ sự thoải mái của bạn riêng nhà.
Tham gia hội thảo trên web miễn phí ngay bây giờ!
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.
Tuyên bố miễn trừ trách nhiệm: Không thực sự làm điều này. Nếu bạn thực sự muốn một lớp lót thì như Nakedfanatic nói rằng hãy phá vỡ quy tắc ngón tay cái từ PEP-8. Tuy nhiên, nó minh họa lý do tại sao
def f[x]: if x==0: return None3 không hành xử như bạn nghĩ nó có thể, và điều gì sẽ trông giống như nó hoạt động như bạn nghĩ
def f[x]: if x==0: return None3 có thể.
Lý do bạn không thể nói
def f[x]: if x==0: return None5, là
def f[x]: if x==0: return None3 giới thiệu một tuyên bố, không phải là một biểu thức. Vì vậy, không có cách nào để dấu ngoặc đơn nó
def f[x]: if x==0: return None7, hoặc bất cứ điều gì.
Không sao đâu, chúng ta có thể khắc phục điều đó. Chúng ta hãy viết một hàm
def f[x]: if x==0: return None8 hoạt động như
def f[x]: if x==0: return None3 ngoại trừ đó là một biểu thức chứ không phải là một tuyên bố đầy đủ:
class ReturnValue[Exception]:
def __init__[self, value]:
Exception.__init__[self]
self.value = value
def enable_ret[func]:
def decorated_func[*args, **kwargs]:
try:
return func[*args, **kwargs]
except ReturnValue as exc:
return exc.value
return decorated_func
def ret[value]:
raise ReturnValue[value]
@enable_ret
def testfunc[x]:
ret[None] if x is None else 0
# in a real use-case there would be more code here
# ...
return 1
print testfunc[None]
print testfunc[1]